Avatar billede stener Nybegynder
24. oktober 2002 - 10:35 Der er 3 kommentarer og
1 løsning

Er det den rigtige fremgangs måde?

Kalder en sp med 2 parametre hvorefter sp giver et svar tibage.

<% 
set Conn = Server.CreateObject("ADODB.Command")
conn2 = "Provider=SQLOLEDB.1;Server=10.10.10.3;database=mcportalen;uid=stener;pwd=stener;network=DBMSSOCN"

    Brugernavn = "stener2"
    Email      = "john"

sub Userexists
    With conn
      .ActiveConnection = Conn2
      .CommandText = "Usp_S_ValidateUser"
      .CommandType = 4 'adCmdStoredProc
    End With
    'Parametre skabelse og setup.
    Set objParameter = Conn.CreateParameter
      objParameter.Name = "@OK"
    objParameter.Type = 2 ' addsmallint
    objParameter.Direction = 4 'addparamreturnvalue
    objParameter.Size = 1
    Conn.Parameters.Append objParameter
    Set objParameter = nothing
    Set objParameter = conn.CreateParameter
    objParameter.Name = "@User_Username"
    objParameter.Type = 129 'addvarchar
    objParameter.Direction = 1 'addparaminput
    objParameter.Size = 10
    objParameter.Value = Brugernavn
    Conn.Parameters.Append objParameter
    Set objParameter = nothing
    Set objParameter = conn.CreateParameter
    objParameter.Name = "@User_Email"
    objParameter.Type = 200 'addvarchar
    objParameter.Direction = 1 'addparaminput
    objParameter.Size = 50
    objParameter.Value = Email
    Conn.Parameters.Append objParameter
    Set objParameter = nothing
    ' Køre sp
    conn.Execute
    intOK = conn.Parameters("@OK").Value
    response.write intOk
    set activeconnection = nothing
    set conn = nothing
end sub

call Userexists


Mit spørgsmål er så om det er en god måde at gøre det på eller om der findes en hurtigere og bedre måde.

Jeg skal have den del flere en 2 parametre med og det vil jo give en del:

Set objParameter = conn.CreateParameter
    objParameter.Name = "@User_Email"
    objParameter.Type = 200 'addvarchar
    objParameter.Direction = 1 'addparaminput
    objParameter.Size = 50
    objParameter.Value = Email
    Conn.Parameters.Append objParameter
    Set objParameter = nothing

Har det noget at sige med hensyn til hastighed?..
Avatar billede capaj Nybegynder
24. oktober 2002 - 14:20 #1
Jeg tror godt du kan være mere "direkte". Det er ikke vist ikke et krav at, du opretter parameter objecter. feks. burde du kunne anvende følgende:
sub Userexists
    With conn
      .ActiveConnection = Conn2
      .CommandText = "Usp_S_ValidateUser"
      .CommandType = 4 'adCmdStoredProc
    End With
    Conn.Parameters("@User_Name").Value = Brugernavn
    Conn.Parameters("@User_Email").Value = Email
    conn.Execute
    intOK = conn.Parameters("@OK").Value
    response.write intOk
    set activeconnection = nothing
    set conn = nothing
end sub


Lidt simplere at se på !

(btw - det er lidt forvirende at du navngiver dit command object Conn :-))
Avatar billede capaj Nybegynder
24. oktober 2002 - 14:25 #2
Jeg mener egentlig også at du kan være endnu mere direkte (du må lige prøve den selv - ikke helt sikker på parameter rækkefølgen - den er vigtig her)

sub Userexists
    With conn
      .ActiveConnection = Conn2
      .CommandText = "Usp_S_ValidateUser"
      .CommandType = 4 'adCmdStoredProc
    End With
    dim ArrayParm
'check rækkefølgen af parametre
ArrayParm=array(Brugernavn,Email,intOK)
    conn.Execute(ArrayParm)
    response.write intOk
    set activeconnection = nothing
    set conn = nothing
end sub
Avatar billede stener Nybegynder
25. oktober 2002 - 11:21 #3
Kan ikke få output parameteret til at virke på løsningen.

Men den her virker så er det bare spørgsmålet om det er en god måde at gøre det på.

Skal man bruge activeconnection når man skal have et output parameter?.

Hvad er fordelen ved activeconnection?.


sub Userexists
    With command
      .ActiveConnection = strconnect
          .CommandText = "Usp_S_ValidateUser"
          .CommandType = 4 'adCmdStoredProc
  'Fortæller sp hvad for data den venter    (Name,Type.Direction,size)
      .Parameters.Append .CreateParameter ("@Exists",2,4,1)
      .Parameters.Append .CreateParameter ("@User_Username",129,1,10)
      .Parameters.Append .CreateParameter ("@User_Email",129,1,50)
      .Parameters("@User_Username") = Brugernavn
      .parameters("@User_Email")    = Email
      .Execute
    End With
    intOK = command.Parameters("@Exists").Value
    response.write intOk
    set activeconnection = nothing
    set conn = nothing
end sub
Avatar billede stener Nybegynder
08. november 2002 - 14:39 #4
TAk for det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester