Das Erlernen der Verwendung gespeicherter Verfahren ist einer der Kurse, die ASP -Programmierer lernen müssen. Alle großen Datenbanken unterstützen gespeicherte Verfahren. Der heutige Artikel ist eine vollständige Sammlung der Verwendung von ASP -gespeicherten Verfahren, die vom Herausgeber des Herausgebers der neuen Technologie geteilt werden. Gehen wir zum folgenden Artikel, um mehr zu erfahren!
1. Rufen Sie gespeicherte Prozeduren ohne Parameter auf
<%
Setzen Sie conn = server.createObject ("adodb.Connection").
Setzen Sie cmd = server.createObject ("adodb.command")
strconn = "dsn = pubs; uid = sa; pwd"
Conn.open Strconn
Setzen Sie CMD.ActiveConnection = conn
cmd.commandtext = "{call nono}"
'Set rs = cmc.exe oder cmd.execute
Setzen Sie rs = cmd.execute ()
%>
2. Eine gespeicherte Prozedur für Eingabeparameter
<%
Setzen Sie conn = server.createObject ("adodb.Connection").
Setzen Sie cmd = server.createObject ("adodb.command")
strconn = "dsn = pubs; uid = sa; pwd"
Conn.open Strconn
Setzen Sie CMD.ActiveConnection = conn
cmd.commandtext = "{call OneInput (?)}"
CMD.Parameters.Append CMD.CreateParameter ("@aaa", Adinteger, Adparaminput)
cmd ("@aaa") = 100
cmd.execute ()
%>
3. Ein Eingangsparameter und ein Ausgangsparameter
<%
Setzen Sie conn = server.createObject ("adodb.Connection").
Setzen Sie cmd = server.createObject ("adodb.command")
strconn = "dsn = pubs; uid = sa; pwd"
Conn.open Strconn
Setzen Sie CMD.ActiveConnection = conn
cmd.commandtext = "{call OneInout (?,?)}"
CMD.Parameters.Append CMD.CreateParameter ("@aaa", Adinteger, Adparaminput)
cmd ("@aaa") = 10
CMD.Parameters.Append CMD.CreateParameter ("@BBB", Adinteger, Adparamoutput)
cmd.execute ()
BBB = CMD ("@BBB")
%>
4. Ein Eingangsparameter, ein Ausgangsparameter und ein Rückgabewert
<%
Setzen Sie conn = server.createObject ("adodb.Connection").
Setzen Sie cmd = server.createObject ("adodb.command")
strconn = "dsn = pubs; uid = sa; pwd"
Conn.open Strconn
Setzen Sie CMD.ActiveConnection = conn
cmd.commandtext = "{? = rufen Sie OneerTurn (?,?)}"
cmd.parameters.Append CMD.CreateParameter ("@return_value", Adinteger, adparamreturnValue)
CMD.Parameters.Append CMD.CreateParameter ("@aaa", Adinteger, Adparaminput)
cmd ("@aaa") = 10
CMD.Parameters.Append CMD.CreateParameter ("@BBB", Adinteger, Adparamoutput)
cmd.execute ()
BBB = CMD ("@BBB")
rrr = cmd ("@return_value")
%>
So rufen Sie SQL gespeicherte Prozedur in ASP auf
www.lucky365.net 2002-2-7 Jixiang365
<%set Connection1 = server.createObject ("adodb.Connection")
Connection1.Open ... 'Join
Set command1 = server.createObject ("adodb.command")
Setzen Sie den Befehl1.ActiveConnection = Connection1
command1.commandType = 4
command1.commandtext = "sp_1" 'SP -Name
command1.Parameters (1) = ... 'Parameterwert
command1.Parameters (2) = ...
Setzen Sie recordSet1 = command1.execute ()
%>
Tipps für gespeicherte Verfahren für ASP -Anrufe
1. Die einfachste ist wie folgt
Dimer Objconn
Setzen Sie objconn = server.createObject ("adobd.Connection")
objconn.open application ("connection_string")
Rufen Sie die gespeicherte Prozedur an, um einen Zähler auf der Seite zu erhöhen
objconn.execute "exec sp_addhit"
Keine Parameter, keine Rückgabe, kein Fehlerhandling, das war's
2. Ein Anruf mit Parametern
objconn.execute "exec sp_addhit 'http://www.aspalliance.com', 1"
Bitte beachten Sie, dass die Split -Parameter nicht an Datensätze zurückgegeben werden.
3.. Kehren Sie zum Datensatz zurück
Dimer Objconn
Dunkle objrs
Setzen Sie objconn = server.createObject ("adobd.Connection")
Setzen Sie objrs = server.createObject ("adobd.recordset").
objconn.open application ("connection_string")
Rufen Sie die gespeicherte Prozedur an, um einen Zähler auf der Seite zu erhöhen
objrs.open objconn, "exec sp_listarticles '15.01.2001'"
Schleifen Sie durch Datensätze und zeigen Sie jeden Artikel an
4 ....
Dimer Objconn
Dimer objcmd
'Objekte instanziieren
Setzen Sie objconn = server.createObject ("adodb.Connection")
Setzen Sie objcmd = server.createObject ("adodb.command")
Conn.open Application ("ConnectionString")
Mit objcmd
.ACTIVECONNECTION = Conn 'Sie können hier auch nur eine Verbindungszeichenfolge angeben
.Commandtext = "sp_insertarticle"
.CommandType = adcmdStoredProc 'erfordert die adovbs.inc -Datei oder das Typelib -Meta -Tag
'Eingabeparameter hinzufügen
.Parameters.Append .CreateParameter ("@columnist_id", addouble, adparaminput, columnist_id)
.Parameters.Append .CreateParameter ("@url", Advarchar, Adparaminput, 255, URL)
.Parameters.Append .CreateParameter ("@title", Advarchar, Adparaminput, 99, URL)
.Parameters.Append .CreateParameter ("@Beschreibung", adlongvarchar, _
Adparaminput, 2147483647, Beschreibung)
'Ausgangsparameter hinzufügen
.Parameters.Append .CreateParameter ("@link_id", Adinteger, adparamoutput,, 0)
'Führen Sie die Funktion aus
Wenn Sie einen Datensatz nicht zurückgeben, verwenden Sie die Parameteroption ateExecutenorecords
.Exezute, adexecutenorecords
link_id = .parameters ("@link_id")
Enden mit
5. Code der gespeicherten Prozedur
Erstellen Sie die Prozedur dbo.sp_insertarticle
(
@columnist_id int,
@url varchar (255),
@title varchar (99),
@Description Text
@link_id int output
)
ALS
BEGINNEN
In dbo.t_link einfügen (columnist_id, url, title, Beschreibung)
Werte (@columnist_id,@url,@title,@Beschreibung)
Wählen Sie @link_id = @@ Identität
ENDE
Verschiedene Möglichkeiten, gespeicherte Prozeduren mit Parametern aufzurufen
In letzter Zeit haben viele Freunde Fragen zum rufen gelagerten Verfahren gestellt. Hier finden Sie eine kurze Einführung in verschiedene Methoden des ASP -Aufrufs gespeicherten Verfahren mit Parametern.
1 Dies ist auch die einfachste Methode mit zwei Eingabeparametern, ohne Rückgabewert:
set Connection = server.createObject ("adodb.Connection")
connection.open Somedsn
Connection.execute "Procname varValue1, varValue2"
'' Löschen Sie alle Objekte in nichts, Frei -up -Ressourcen frei
Verbindung.CLOSE
Setzen Sie die Verbindung = Nichts
2 Wenn Sie den Recordset -Satz zurückgeben möchten:
set Connection = server.createObject ("adodb.Connection")
connection.open Somedsn
Setzen Sie rs = server.createObject ("adodb.recordset")
rs.open "Exec Procname Varwert1, varValue2", Verbindung
'' Löschen Sie alle Objekte in nichts, Frei -up -Ressourcen frei
rs.close
Verbindung.CLOSE
Setzen Sie Rs = nichts
Setzen Sie die Verbindung = Nichts
3 Die beiden oben genannten Methoden können keinen Rückgabewert haben (außer Datensatz). Wenn Sie den Rückgabewert erhalten möchten, müssen Sie die Befehlsmethode verwenden.
Zunächst gibt es zwei Arten von Rückgabewerten. Einer besteht darin, einen Wert in der gespeicherten Prozedur direkt zurückzugeben, genau wie die Funktionen von C- und VB -Rückgabewerten. Die andere ist, mehrere Werte zurückzugeben,
Die Variablennamen, die diese Werte speichern, müssen zuerst im Anrufparameter angegeben werden.
In diesem Beispiel handelt es sich um mehrere Parameter, Eingabeparameter, Ausgabeparameter, Rückgabeaufzeichnungen und einen direkten Rückgabewert (ist alles genug?)
Das gespeicherte Verfahren ist wie folgt:
Pubs verwenden
GEHEN
- Erstellen Sie gespeicherte Verfahren
Erstellen Sie die Prozedur SP_PUBSTEST
- Definieren Sie drei Parametervariablen, beachten Sie die dritte, die spezielle Marke für die Ausgabe wird verwendet
@au_lname varchar (20),
@intid int,
@Intidout int Ausgabe
ALS
Wählen Sie @Intidout = @Intid + 1
WÄHLEN *
Von Autoren
Wo au_lname wie @au_lname + '%' '' wie @au_lname '' '
-Einen Wert direkt zurückgeben
Return @intid + 2
Das ASP -Programm, das die gespeicherte Prozedur aufruft, lautet wie folgt:
< %@ Sprache = vbScript %>
<%
Dimes CMDSP
Dunkelne Abors
Dim ADCMDSPRORDPROC
Dimer adparamreturnValue
Dimer Adparaminput
Dimer adparamoutput
Dimer Adinteger
Dimer Ival
Dim Oval
Dimes Adofield
Dimer Advarchar
'Diese Werte sind vordefinierte Konstanten in VB und können direkt aufgerufen werden, aber in VBSScript nicht vordefiniert werden
ADCMDSPRORDPROC = 4
adparamReturnValue = 4
adparaminput = 1
adparamoutput = 2
Adinteger = 3
Advarchar = 200
Ival = 5
oval = 3
'' Erstellen Sie ein Befehlsobjekt
Setzen Sie cmdsp = server.createObject ("adodb.command").
'' Erstellen Sie einen Link
Cmdsp.ActiveConnection = "treiber = {SQL Server}; Server = (lokal); uid = sa; pwd =; Datenbank = Pubs"
'' Definieren Sie den Befehlsobjekt -Anrufnamen
Cmdsp.commandtext = "sp_pubstest"
'' Setzen Sie den Befehlsanruf -Typ als gespeicherte Prozedur (ADCMDSPROREDPROC = 4)
CMDSP.CommandType = ADCMDSPRORDPROC
'' Fügen Sie dem Befehlsobjekt Parameter hinzu
'' Definieren Sie die gespeicherte Prozedur hat einen direkten Rückgabewert und ist eine Ganzzahl, der Standardwert beträgt 4
CMDSP.Parameters.Append CMDSP.CreateParameter ("return_value", Adinteger, adparamreturnValue, 4)
'' Definieren Sie einen Zeicheneingangsparameter
Cmdsp.parameters.Append cmdsp.CreateParameter ("@au_lname", Advarchar, Adparaminput, 20, "M")
'' Definieren Sie einen Integer -Eingabeparameter
CMDSP.PARAMETERS.Append CMDSP.CreateParameter ("@intid", Adinteger, Adparaminput, Ival)
'' Definieren Sie einen Ganzzahlausgangsparameter
Cmdsp.parameters.Append cmdsp.CreateParameter ("@intidout", Adinteger, adparamoutput, oval)
'' Führen Sie die gespeicherte Prozedur aus und erhalten Sie den Return Record Set
Setzen Sie adors = cmdsp.execute
'' Drucken Sie jeden Datensatz aus, die Felder darin sind virtuell, Sie können sie ignorieren
Während nicht adors.eof
für jedes adofield in adors.fields
Response.write adofield.name & "=" & adofield.value & "
"& vbcrlf
Nächste
Response.write "
"
adors.Movenext
Wend
'' Drucken Sie zwei Ausgabewerte:
Response.write "
@Intidout = "& cmdsp.parameters ("@intidout "). Value &"
"
Response.write "
Return value = "& cmdsp.parameters (" return_value "). Value &"
"
'' Große Reinigung
Adors einstellen = nichts
Setzen Sie cmdsp.ActiveConnection = nichts
Setzen Sie CMDSP = nichts
%>
Es gibt andere Möglichkeiten, die ein bisschen abgeschöpft sind, und ich werde später darüber sprechen
In diesem Artikel wurde auf viele Artikel verwiesen und wird hier nicht aufgeführt.
Verwenden gespeicherter Verfahren in ASP
Um die Effizienz von ASP -Programmen zu verbessern, ist es manchmal erforderlich, die Speichertechnologie mithilfe von SQL Server in ASP zu verwenden. Hier ist eine kurze Einführung.
Einrichtung gespeicherter Verfahren
Hier finden Sie eine kurze Einführung in die Festlegung gespeicherter Prozeduren im Enterprise Manager von SQL Server:
(1) Open Enterprise Manager öffnen
(2) Wählen Sie die Servergruppe (SQL Server-Gruppe), Server, Datenbank (Datenbank) und die entsprechende Datenbank aus, klicken Sie mit der rechten Maustaste auf das Element für gespeicherte Procdures unter der entsprechenden Datenbank, wählen Sie im Popup-Menü neue gespeicherte Prozeduren ein und geben Sie die Anweisung ein, um eine gespeicherte Prozedur in Stored-Prozeduren zu erstellen. Hier ist ein Beispiel:
Erstellen Sie Procedure Proctest @mycola char (10),@mycolb char (10),@mycolc text als
Einfügen in Chatdata (Mycola, Mycolb, Mycolc) Werte (@mycola,@mycolb,@mycolc)
In der Dokumentation von SQL Server lautet die Syntax:
Proc [edure] procedure_name [; number] [edure] [; number] [
{@parameter data_type} [variieren] [= Standard] [Ausgabe]]
[, ... n] [mit {rekompile | Verschlüsselung
| Neu kompilieren, Verschlüsselung}] [zur Replikation] als
SQL_Statement [... n]
Wenn Sie mit der SQL -Syntax nicht vertraut sind, können Sie die Überprüfung der Syntax überprüfen. Im obigen Beispiel bedeutet dies, dass die gespeicherte Prozedur mit einer gespeicherten Prozedur mit dem Namen Mycola und 3 Parametern erstellt wird. Der erste Parameter -Mycola -Datentyp ist char und Breite 10; Der zweite Parameterdatentyp ist char und width 10 und der dritte Parameterdatentyp ist Text. Hier ist der Datentyp des SQL -Servers.
Nachdem die gespeicherte Prozedur festgelegt wurde, ist Folgendes, wie das gespeicherte Verfahren im ASP -Programm aufgerufen wird: Um die Effizienz des ASP -Programms zu verbessern, muss die Speichertechnologie mithilfe von SQL Server in ASP manchmal verwendet werden. Hier ist eine einfache Möglichkeit, Parameter in der obigen Anweisung hinzuzufügen.
P.Append CM.CreateParameter ("Parametername", Typ, Richtung, Größe)
Die Bedeutung des Typs des Parameterwerts lautet wie folgt:
Name Value Integer Value -Funktion nennen
Fügen Sie Bittimestamp 135 Datums- und Uhrzeittyp hinzu
Addecimal 14 Dezimalbezahlungswert
5 doppelte Präzisions -Dezimalwert hinzufügen
Aderror 10 Systemfehlermeldung
Adguid 72 global eindeutiger Kenner
Addispath 9 Com/Ole Automatic Object (Automatisierungsobjekt)
Adinteger 3 4-Byte signierte Ganzzahl
adiUunkNOWN 13 com/Ole -Objekt
Adlongvarbinary 205 großer 2-Byte-Wert
Adlongvarchar 201 großer Stringwert
adlongvarwchar 203 große, unverzündete Schnur
adnumerischer 131 Dezimalbezahlungswert
Adsingle 4 Single Precision Floating Point Decimal
adsmallint 2 2-byte signierte Ganzzahl
adtinyint 16 1 Byte signierte Ganzzahl
adunsignedBigint 21 8-byte unsignierte Ganzzahl
adunsignedint 19 4-byte unsigned Ganzzahl
adunsignedsmallint 18 2-byte unsigned Ganzzahl
adunsignedTinyint 17 1 Byte unsignierte Ganzzahl
AduserDefined 132 benutzerdefinierter Datentyp
Advariante 12 -Ole -Objekt
Advarbinary 204 Doppel -Byte -Zeichen variabler Wert
Advarchar 200 -Charakter -Variablenwert
Advarchar 202 Uncodierter Zeichenfolge Variabler Wert
Adwchar 130 Uncodierte Zeichenfolge
Die Bedeutung von Richtungswerten ist wie folgt:
Name Value Integer Value -Funktion nennen
ADPARAMINPUP 1 ermöglichen es, Daten in diesen Parameter einzugeben
Mit ADParamoutput 2 können Daten zu diesem Parameter ausgegeben werden
ADPARAMINPUTOutPUT 3 ermöglicht die Dateneingabe und die Ausgabe in diesen Parameter
Mit ADPARAMRETURNVALUE 4 können Daten von einem Unterroutine auf diesen Parameter zurückgegeben werden
Das obige ist eine vollständige Sammlung der Verwendung von ASP -gespeicherten Verfahren, die vom Herausgeber des falschen neuen Technologiekanals gesammelt wurden. Ich hoffe, es wird Ihrem Lernen helfen!