Avatar billede hairball Nybegynder
17. maj 2001 - 16:24 Der er 5 kommentarer

Overførsel af variabel til SP


Jeg har en SP med op til flere eksternt kommende fra variabler, som eksempelvis :

@CategoryID int = NULL,
@ProgramID int = NULL,
@TypeID int = NULL,
@OrderBy Varchar(30) = \'ProgramID\'

Men hvis jeg kalder SP\'en med kun eksempelvis en @OrderBy variabel, således :

.Parameters.Append .CreateParameter(\"@OrderBy\", adVarChar, adParamInput, 30, \"ProgramID\")

Prøver den at smide den ind i den første variabel den finder i SP\'en, nemlig @CategoryID

Kan det passe at man ikke kan kalde sin SP med kun den variabel man ønsker at ændre og lade de andre have en default værdi som bruges hvis de ikke kaldes med en ekstern værdi ?
Avatar billede mwittrock Nybegynder
18. maj 2001 - 12:40 #1
Følgende virker her hos mig:

    Dim objCommand
   
    Set objCommand = Server.CreateObject(\"ADODB.Command\")
    Set objCommand.ActiveConnection = en_forbindelse_til_databasen
    objCommand.CommandType = adCmdStoredProc
    objCommand.CommandText = \"din_procedures_navn\"

    objCommand.Parameters(2).Direction = adParamInput
    objCommand.Parameters(2).Type = adVarChar
    objCommand.Parameters(2).Value = \"parameterens_værdi\"

Procedurens anden parameter får den tildelte værdi, alle andre parametre beholder deres default værdi.
Avatar billede mwittrock Nybegynder
18. maj 2001 - 12:41 #2
Kræver naturligvis at ADO konstanterne (adCmdStoredProc osv) er tilgængelige i scriptet.
Avatar billede ldanielsen Nybegynder
22. maj 2001 - 17:29 #3
Meget lettere:
Con.Execute \"EXEC sp_MinSP \'\', \'\" & variablvaerdien & \"\', \'\'\"

Dog er der ikke \"ingen værdier\" i 1. og 3. parameter, men tomme strenge. Du kan vel prøve med:

Con.Execute \"EXEC sp_MinSP NULL, \'\" & variablvaerdien & \"\', NULL\"

Men du har vel skreve din SP så den godt kan finde ud af ikke at få værdier med, så du ved selv om den skal have \"\" eller NULL
Avatar billede fmadse1 Nybegynder
22. maj 2001 - 20:51 #4
\"exec sp_storedprocedure @Variable=\'pollemand\'\"
Så beholder de null initialiserede varible deres null
Avatar billede hairball Nybegynder
22. maj 2001 - 20:58 #5
Fordelen ved at bruge
.Parameters.Append .CreateParameter(\"@OrderBy\", adVarChar, adParamInput, 30, \"ProgramID\")
er at du ikke behøver at tænke på fy-tegn som eksempelvis \'
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
Computerworld tilbyder specialiserede kurser i database-management

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