1 Dies ist auch die einfachste Methode mit zwei Eingabeparametern und keinem Rückgabewert:
Verbindung festlegen = server.createobject(adodb.connection)
Verbindung.Öffnen Sie einen DSN
Connection.Execute procname varvalue1, varvalue2
„Löschen Sie alle Objekte in Nichts und geben Sie Ressourcen frei.“
Verbindung schließen
setze Verbindung=nichts
2 Wenn Sie den Recordset-Satz zurückgeben möchten:
Verbindung festlegen = server.createobject(adodb.connection)
Verbindung.Öffnen Sie einen DSN
set rs = server.createobject(adodb.recordset)
rs.Open Exec procname varvalue1, varvalue2,connection
„Löschen Sie alle Objekte in Nichts und geben Sie Ressourcen frei.“
rs.close
Verbindung schließen
setrs=nichts
setze Verbindung=nichts
3 Keine der beiden oben genannten Methoden kann einen Rückgabewert haben (außer Recordset). Wenn Sie den Rückgabewert erhalten möchten, müssen Sie die Command-Methode verwenden.
Zunächst einmal gibt es zwei Arten von Rückgabewerten. Eine besteht darin, einen Wert direkt in der gespeicherten Prozedur zurückzugeben, genau wie der Funktionsrückgabewert von C und VB. Die andere besteht darin, mehrere Werte zurückzugeben, und die Variablennamen zum Speichern dieser Werte müssen zuerst in den aufrufenden Parametern angegeben werden .
Dieses Beispiel muss mehrere Parameter, Eingabeparameter, Ausgabeparameter, Rückgabedatensätze und einen direkten Rückgabewert verarbeiten (ist es vollständig genug?)
Die gespeicherte Prozedur lautet wie folgt:
Kneipen nutzen
GEHEN
– Erstellen Sie eine gespeicherte Prozedur
Erstellen Sie die Prozedur sp_PubsTest
--Definieren Sie drei Parametervariablen. Beachten Sie, dass die dritte speziell für die Ausgabe markiert ist.
@au_lname varchar (20),
@intID int,
@intIDOut int AUSGABE
ALS
SELECT @intIDOut = @intID + 1
WÄHLEN *
VON Autoren
WHERE au_lname LIKE @au_lname + '%'
--Einen Wert direkt zurückgeben
RETURN @intID + 2
Das ASP-Programm, das diese gespeicherte Prozedur aufruft, lautet wie folgt:
<%@ Language=VBScript %>
<%
CmdSP dimmen
DimadoRS
Dimmen Sie adCmdSPStoredProc
Dimmen Sie adParamReturnValue
AdParamin-Eingabe dimmen
Dimmen Sie adParamOutput
AdInteger dimmen
iVal dimmen
Dunkles Oval
Schwaches adoField
AdVarChar dimmen
„Diese Werte sind in VB vordefinierte Konstanten und können direkt aufgerufen werden, sie sind in VBScript jedoch nicht vordefiniert.“
adCmdSPStoredProc = 4
adParamReturnValue = 4
adParaminput = 1
adParamOutput = 2
adInteger = 3
adVarChar = 200
iVal = 5
oVal = 3
'Erstellen Sie ein Befehlsobjekt
set CmdSP = Server.CreateObject(ADODB.Command)
'Verknüpfung erstellen
CmdSP.ActiveConnection = Driver={SQL Server};server=(local);Uid=sa;Pwd=;Database=Pubs
'Definieren Sie den Namen des Befehlsobjektaufrufs
CmdSP.CommandText = sp_PubsTest
'Legen Sie den Befehlsaufruftyp auf eine gespeicherte Prozedur fest (adCmdSPStoredProc = 4)
CmdSP.CommandType = adCmdSPStoredProc
'Parameter zum Befehlsobjekt hinzufügen
„Definieren Sie die gespeicherte Prozedur so, dass sie einen direkten Rückgabewert hat. Der Standardwert ist 4.“
CmdSP.Parameters.Append CmdSP.CreateParameter(RETURN_VALUE, adInteger, adParamReturnValue, 4)
'Definieren Sie einen Zeicheneingabeparameter
CmdSP.Parameters.Append CmdSP.CreateParameter(@au_lname, adVarChar, adParaminput, 20, M)
'Definieren Sie einen ganzzahligen Eingabeparameter
CmdSP.Parameters.Append CmdSP.CreateParameter(@intID, adInteger, adParamInput, , iVal)
'Definieren Sie einen ganzzahligen Ausgabeparameter
CmdSP.Parameters.Append CmdSP.CreateParameter(@intIDOut, adInteger, adParamOutput, oVal)
'Führen Sie die gespeicherte Prozedur aus und rufen Sie das zurückgegebene Recordset ab
Legen Sie adoRS = CmdSP.Execute fest
'Jeden Datensatz ausdrucken. Die Felder sind virtuell und können ignoriert werden.
Während nicht adoRS.EOF
für jedes adoField in adoRS.Fields
Response.Write adoField.Name & = & adoField.Value & <br> & vbCRLF
Nächste
Response.Write<br>
adoRS.MoveNext
Wend
'Drucken Sie zwei Ausgabewerte:
Response.Write <p>@intIDOut = & CmdSP.Parameters(@intIDOut).Value & </p>
Response.Write <p>Rückgabewert = & CmdSP.Parameters(RETURN_VALUE).Value & </p>
„Allgemeine Reinigung
Setze adoRS = nichts
Setzen Sie CmdSP.ActiveConnection = nichts
Setzen Sie CmdSP = nichts
%>
Es gibt auch andere Möglichkeiten, die etwas voreingenommener sind, über die wir später sprechen werden.
Dieser Artikel bezieht sich auf viele Artikel, die hier nicht aufgeführt sind.