06. august 2004 - 10:18
Der er
8 kommentarer og 1 løsning
Parameter syntax til Stored Procedure (SQL server 2000)
Hvordan er syntaksen når man sender parametre fra ASP til en Stored Precedure med ASP. I mit tilfælde skal jeg have sendt null som variabel da jeg tjekker op på denne på serveren og ikke som en tekststring. If shopID = 0 then shopID = null end if If Btekst = "" then Btekst = null end if rs1 = myConn.execute( "Exec Soeg '"& Btekst &"' , '"& shopID & "'") Når jeg udskriver sætningen kan jeg se at null ikke bliver sat ind den viser bare Exec Soeg '' , '' nogen der ved hvordan løser dette?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
06. august 2004 - 10:32
#1
If shopID = 0 then shopID = "null" end if If Btekst = "" then Btekst = "null" end if - vil nok virke bedre
06. august 2004 - 10:37
#2
ja, men ved du om man skal have 'udenom' , eller skal det fjernes så det kun er komma der adskiller?
06. august 2004 - 10:41
#3
det er jo fordi SQL serveren skal opfatte null som en variable og ikke et stykke tekst
06. august 2004 - 10:49
#4
Åhja!!! If shopID = 0 then shopID = "null" end if If Btekst = "" then Btekst = null else Btekst = "'" & Btekst "'" end if rs1 = myConn.execute( "Exec Soeg " & Btekst & ", " & shopID ) Jeg går udfra at shopID er et tal
06. august 2004 - 13:07
#5
det virker næsten nu, du ved ikke hvad man skal skrive inde i stored procedure for at rekordsættet modtager resultatet korrekt jeg har tjekket op om de sendte informationer på serveren fungerer, det gør de hvis jeg tester i SQL Query Analyzer. Fejlen jeg får i ASP er nu følgende Error Type: ADODB.Recordset (0x800A0E78) Operation is not allowed when the object is closed. og jeg har ikke lukket sættet
06. august 2004 - 13:23
#6
Du vil altså have et recordset ud af din stored procedure, det kan man godt, men jeg har ikke selv brugt det. Giv mig et øjeblik
06. august 2004 - 13:31
#7
Du må vise mig asp'en, det er der fejlen er (tror jeg)
06. august 2004 - 13:44
#8
Det er faktisk ret simpelt sub search() Dim ShopID, Btekst If shopID = 0 then shopID = "null" end if If Btekst = "" then Btekst = null else Btekst = "'" & Btekst "'" end if rs1 = myConn.execute( "Exec Soeg " & Btekst & ", " & shopID ) do while not rs1.EOF Mit indhold hvor jeg udskriver tabeller og indhold Loop rs1.close set rs1=nothing end sub ----------- men så vidt jeg ved er det noget med at det er den SP sender antal fundne først og derefter sender den posterne, er dette rigtigt
06. august 2004 - 13:57
#9
Prøv med SET rs1 = myConn.execute( "Exec ... Nej, det er ikke det med at den sender antal fundne først. Jeg går udfra at det sidste statement i din sp er en SELECT? Du har vel en rs1.MoveNext i loop'et? og ingen rs1.close i loop'et Og lige et PS: Din ADO syntaks er en smule forenklet, se her:' Set myConn = Server.CreateObject("ADODB.Connection") myConn.Open ConnectionString Set Com = Server.CreateObject("ADODB.Command") Set rs1 = Server.CreateObject("ADODB.Recordset") Com.ActiveConnection = myConn Dim ShopID, Btekst If shopID = 0 then shopID = "null" end if If Btekst = "" then Btekst = null else Btekst = "'" & Btekst "'" end if Com.CommandText = "Exec Soeg " & Btekst & ", " & shopID rs1.Open Com, , 0, 1 blabla rs1.Close Set rs1 = nothing Set Com = nothing myConn.Close Set myConn = nothing
Kurser inden for grundlæggende programmering