ASP ist ein leistungsstarkes Tool zum Generieren dynamischer interaktiver Webseiten. Unten finden Sie ein Tutorial zur Verwendung von ASP Storage, das der Editor mit Ihnen geteilt hat. Interessierte Freunde, lasst uns mit dem Herausgeber erfahren!
1. Übergeben Sie Parameter mit Befehlsobjekten und Parameterobjekten. Diese Vorlesung verwendet hauptsächlich die Microsoft SQL Server 7.0 -Datenbank. Erstellen Sie zunächst eine Verbindungsdatei adoSQL7.asp für die Sicherung. Ich werde es nicht angeben, wenn es später verwendet wird.
%'' AdoSQL7.asp
OptionExPlicit
Response.expires = 0
'' Teil 1: eine Verbindung herstellen
Dimcnn, Strcnn
SetCnn = server.createObject ("adodb.Connection")
Strcnn = "Provider = SQLOLEDB; userID = SA; Passwort =; initialCatalog = Pubs; DataSource = icbczjp"
Cnn.openstrcnn
%>
HINWEIS: Wenn Sie es selbst verwenden, setzen Sie den DataSource auf den Maschinennamen Ihres Datenbankservers.
Bei Verwendung von Access -Datenbanken in der Vergangenheit kann Microsoft Access97 auch Felder und Daten einfach anzeigen. Bei Verwendung von SQLServer -Datenbanken, insbesondere beim Debuggen von ASP -Skripten auf einem anderen Computer, müssen Sie zusätzliche Tools installieren, um Felder und Daten anzuzeigen. Hier stellen wir Ihnen ein Tool zur Verfügung: MSQRY32.exe (MicrosoftQuery). Diese Datei ist in Office97 installiert und befindet sich in der Regel im Verzeichnis "Microsoft Office/Office".
Beispiel WUF70.asp:
%@Sprache = "vbscript"%>
!-#includeFile = "adoSql7.asp"->
!-#includeFile = "adovbs.inc"->
%'' wuf70.asp
Dimcmdtest, prMtest, restest
'' Befehlsobjekt erstellen
SetCmdest = server.createObject ("adodb.command")
'RecordSet- und Befehlsobjekte können über die ActiveConnection -Eigenschaft mit Verbindungsobjekten verbunden werden.
cmdtest.ActiveConnection = CNN
'' SQL -Befehl - enthält zwei Parameter, ausdrücken mit?
cmdtest.commandText = "updatejobssetjob_desc =? WOJOB_ID =?"
'' Angenommen, der Befehlstyp ist eine SQL -Anweisung
CMDTEST.CommandType = ADCMDText
'' Die vorbereitete Eigenschaft bestimmt, ob der Befehl SQL zuerst kompiliert werden soll, und setzen Sie sie auf True ein, um den Lauf zu beschleunigen
CMDTEST.Preparared = True
'' Parameterobjekt erstellen
SetPrmtest = cmdTest.CreateParameter ("Job_Desc", Advarchar, Adparaminput, 50, "Netzwerk")
'' Daten an die Parameter Datenerfassung anhängen
CMDTEST.PARAMETERS.APPENDPRMTEST
SetPrmtest = cmdTest.CreateParameter ("Job_id", adsmallint, adparaminput ,, "12")
CMDTEST.PARAMETERS.APPENDPRMTEST
'' Ausführen von Änderungen - Sie müssen das Ergebnis nicht zurückgeben. Verwenden Sie einfach cmdTest.execute
cmdtest.execute
'' Die Parameter zurücksetzen, um auszuführen - Sie können ein anderes Datenstück ändern
cmdtest.parameters ("Job_id") = "1"
cmdtest.parameters ("Job_desc") = "Test"
cmdtest.execute
'' Die Parameter zurücksetzen, um auszuführen
cmdTest ("Job_id") = "14"
cmdtest ("Job_desc") = "Financial"
cmdtest.execute
SetRStest = cnn.execute ("selectjob_id, job_descfromjobs"))
Whilenotrstest.eof
Response.writerstest (0) & rstest (1) & "" "
rstest.Movenext
Wend
Cnn.close: setPrMtest = nichts
SetCmdTest = nichts: setCnn = nichts
%>
analysieren:
1. Die Methode createParameter des Befehlsobjekts wird verwendet, um Parameterobjekte für SQL -Befehle oder gespeicherte Prozeduren zu erstellen. Insgesamt gibt es fünf Parameter (die fünf Parameter sind optional):
Der erste Parameter: der Name des Parameterobjekts;
Der zweite Parameter: Es gibt zu viele Arten von Datentypen von Parameterobjekten. Weitere Informationen finden Sie in der ADO-Hilfe, hier Advarchar (String-Wert), adsmallint (2-byte signierte Ganzzahl);
Der dritte Parameter: Parametertyp. Es kann sein: ADParaminput (zeigt Eingabeparameter an), ADParamoutput (zeigt als Ausgangsparameter an), adparamReturnValue (Zeigt als Rückgabewert an), adparamoUnnown (an, dass der Parametertyp nicht bestimmt werden kann), adparaminputOutput (zeigt als Eingabe-/Ausgangsparameter an).
Der vierte Parameter: Die Datenlänge des Parameters wird vorzugsweise so angegeben, dass sie der entsprechenden Feldlänge in der Datenbank entspricht, um beim Gebrauch Fehler zu vermeiden. Insbesondere wenn der Datentyp varchar ist, ist der Wert nicht erforderlich, wenn es sich um eine Ganzzahl oder ein Datumstyp handelt.
Der fünfte Parameter: Der Anfangswert der Parametereinstellung.
2.cmdTest.Parameters.Append -Methode fügt der Datenerfassung der Parameter ein Parameterobjekt hinzu. Aus diesem Beispiel können Sie auch sehen, wie mehrere Parameter verwendet werden.
3. Aus diesem Beispiel können wir feststellen, dass Sie die Eingabeparameter nur zurücksetzen müssen, um Änderungen an anderen Daten durchzuführen, was sehr bequem ist. Diese Idee ist auch eine der am häufigsten verwendeten Methoden beim Programmieren.
4. Setzen Sie die Parameter zurück, Sie können entweder cmdTest.Parameters verwenden oder es mit cmdTest ("Job_id") auslassen.
2. Verwenden Sie gespeicherte Verfahren in ASP
Eine gespeicherte Prozedur (eine gespeicherte Prozedur befindet sich auf dem Datenbankserver und ist eine Sammlung von SQL -Anweisungen, die eine oder mehrere SQL -Anweisungen enthalten können), und wie gespeicherte Prozeduren nicht zum Inhalt dieser Vorlesung gehört. Dieser Vortrag zeigt hauptsächlich, wie Sie gespeicherte Prozeduren in ASP aufrufen.
Die Vorteile der Verwendung gespeicherter Verfahren sind großartig, die effizienter sind als SQL -Befehle in ASP -Skripten. Sie können die Gesamtleistung verbessern und die Netzwerkbelastung reduzieren (die Interaktion zwischen Netzwerkservern und Datenservern reduzieren). Sie können den ASP -Code optimieren und die Code -Flexibilität verbessern und so weiter.
(I) Verwenden Sie Eingabeparameter in gespeicherten Prozeduren
Die in diesem Beispiel verwendete gespeicherte Prozedur ist "Byroyalty", die mit SQLServer 7.0 geliefert wird. Eine SQL -Anweisung im Inneren ist sehr einfach. Es ist nichts weiter als ein zusätzliches CreateProcedurebyroyalty, und ein Eingabeparameter ist @percentage:
CreateReProcedurebyroyalty@prozentualInt
ALS
selectau_idfromtitleAthor
whiretitleAuthor.royaltypeper=@percentage
servBYWWW.CIDU.NET
Beispiel WUF71.asp
%@Sprache = vbScript%>
!-#includeFile = "adoSql7.asp"->
!-#includeFile = "adovbs.inc"->
%'' wuf71.asp
Dimcmdtest, prMtest, restest
SetCmdest = server.createObject ("adodb.command")
CMDTEST.Commandtext = "Byroyalty" 'gespeicherter Verfahrensname
'' Angenommen, der Befehlstyp ist eine gespeicherte Prozedur
cmdtest.commandType = adcmdStoredProc
'' Parameterobjekt erstellen
SetPrMtest = server.createObject ("adodb.parameter")
Das Typ -Attribut entspricht dem zweiten Parameter in WUF70.asp
prMtest.type = adinteger''4-byte signierte Integer
'Direction -Eigenschaft entspricht dem dritten Parameter in WUF70.asp
prMtest.direction = adparaminput
Das Wertattribut des Wertes entspricht dem fünften Parameter in WUF70.asp
prMtest.Value = 30
CMDTEST.PARAMETERS.APPENDPRMTEST
SetCmdTest.ActiveConnection = CNN
'Sie müssen einen Datensatzsatz zurückgeben. Verwenden Sie also setRStest = cmdtest.execute
SetRStest = cmdTest.execute
Whilenotrstest.eof
Response.writerstest (0) & "" "
rstest.Movenext
Wend
Cnn.close
SetRStest = nichts: setPrmtest = nichts
SetCmdTest = nichts: setCnn = nichts
%>
In der Befehls -Eigenschaft können entweder SQL -Befehle oder als gespeicherte Prozeduren oder Tabellennamen angegeben.
In diesem Beispiel unterscheidet sich das Erstellen eines Parameterobjekts geringfügig von WUF70.asp. Wenn Sie genau hinschauen, ist die Bedeutung ähnlich. In diesem Beispiel gibt es zwei Eigenschaften, die nicht verwendet werden: prMtest.name, prMtest.size plus Typ, Richtung und Wert, die den fünf Parametern in WUF70.asp entsprechen.
(Ii) Ausgangsparameter verwenden
Wenn Sie einen Datensatz aus einer Datenbanktabelle erhalten oder einen Wert berechnen, muss eine gespeicherte Prozedur, die die Ausgabeparameter zurückgibt, verwendet werden. Um ein Beispiel zu geben, erstellen Sie zunächst ein neues gespeichertes Verfahren in der SQLServer Pubs -Bibliothek. Die gespeicherte Prozedur muss zwei Daten eingeben und dann einen maximalen Wert ausgeben.
CreateReProcedureOut -Arbeits-
(
@job_lvltinyIntoutput,,
@Hire_Date1Datetime,
@Hire_Date2Datetime
)
ALS
Wählen Sie@job_lvl = max (Job_lvl) FromIm -ratingee
wohire_date> =@mire_date1andhire_date =@Hire_date2
Es gibt verschiedene Möglichkeiten, gespeicherte Verfahren zu erstellen:
1. Verwenden Sie den EnterpriseManager von Microsoft SQLSERVER, öffnen Sie es im Baumverzeichnis links und öffnen Sie es wiederum: Consoleoot -MicrosoftSQLServers -SQLServerGroup -ICBCZJP (WindowsNT) -Databasen - Pubs -StoryPoredProcedure -newsStoredProceduredoreduredRecedureduredRecedureduredReceduredureduredureduredure - -News -storate. Nach Eingabe des gespeicherten Verfahrens kann es auch syntaxiert werden.
2. Verwenden Sie den QueryAnalyzer von Microsoft SQLSERVER, stellen Sie zunächst eine Verbindung zum Datenbankserver her und wählen Sie die Pubs -Datenbank. Geben Sie die oben gespeicherte Prozedur ein und klicken Sie auf ExecuteQuery (oder drücken Sie F5).
3. Verwendung von VB6.0, nachdem das Menü "Ansicht"/"Datenansichtsfenster" geöffnet wird, klicken Sie mit der rechten Maustaste auf "Datenlink"/"neuer Datenlink".
V.
%@Sprache = vbScript%>
!-#includeFile = "adoSql7.asp"->
!-#includeFile = "adovbs.inc"->
%'' wuf75.asp
Dimstrsql
'' Hinweis: & Chr (10) & Chr (13) kann ignoriert werden, hauptsächlich aus gutem Aussehen
STRSQL = "CreateReProcedureOut -Emplerie (@job_lvltinyIntoutput", & chr (10) & chr (13) & _
"@Hire_Date1DATETIME,@HIRE_DATE2DATETIME) als" & chr (10) & chr (13) & _
"select@Job_lvl = max (Job_lvl) fromIm -ratingee" & _
"WHEREHHIRE_DATE> =@HIRE_DATE1ANDHIRE_DATE =@HIRE_DATE2"
Cnn.execUTestrsql
Response.write "Erstellen Sie erfolgreich gespeichertes Verfahren"
Cnn.close: setcnn = nichts
%>
Nachdem die gespeicherte Prozedur erstellt wurde, können Sie sie zusätzlich zur Verwendung des Menüs mit der SQL -Anweisung "DropProcedureOut -Employe -Employe" löschen.
Beispiel WUF72.asp - Senden Sie die erforderlichen Eingabeparameter in die gespeicherte Prozedur und erhalten Sie das Ausgabeergebnis.
%@Sprache = vbScript%>
!-#includeFile = "adoSql7.asp"->
!-#includeFile = "adovbs.inc"->
%'' wuf72.asp
Dimcmdtest, prMtest
SetCmdest = server.createObject ("adodb.command")
cmdtest.ActiveConnection = CNN
CMDTEST.Commandtext = "Out Employed" '' gespeicherte Verfahrensname
cmdtest.commandType = adcmdStoredProc
'' Parameterobjekt erstellen
SetPrmtest = cmdTest.CreateParameter ("Job_Lvl", adtinyint, adparamoutput)
CMDTEST.PARAMETERS.APPENDPRMTEST
'' AdtinyInt-1 Byte signierte Ganzzahl
'' addbdate-date-Wert (yyyymmdd)
SetPrmtest = cmdTest.CreateParameter ("Hiredate1", addbdate, adparaminput ,, "1993-05-09")
CMDTEST.PARAMETERS.APPENDPRMTEST
SetPrmtest = cmdTest.CreateParameter ("Hiredate2", addbdate, adparaminput ,, "1994-02-01"))
CMDTEST.PARAMETERS.APPENDPRMTEST
cmdtest.execute
'Die folgenden drei Ausdrücke bedeuten gleich
Response.writecmdTest ("Job_lvl") & "" "
Response.writecmdtest.parameters ("Job_lvl") & "" "
Response.writecmdTest.parameters ("Job_lvl"). Wert
Cnn.close
SetPrmtest = nichts
SetCmdTest = nichts: setCnn = nichts
%>
(Iii) Verwenden Sie Rückgabecodeparameter
Verwenden Sie die Return -Anweisung, um verschiedene Rückgabescodes aus gespeicherten Prozeduren zurückzugeben. Zum Beispiel erhält das gespeicherte Verfahren zunächst einen Datensatz, und wenn es einen Mitarbeiter namens Margaret gibt, kehrt er 1 zurück, andernfalls wird es 0 zurückgeben.
CreateReProcedurerTurniere
ALS
selectEMP_ID, fnameFromM -resagierende
IFexists (selectFnameFromim -ragingeewherefname = '' margaret ''))
Rückkehr (1)
Anders
Rückkehr (0)
Beispiel WUF73.asp
%@Sprache = vbScript%>
!-#includeFile = "adoSql7.asp"->
!-#includeFile = "adovbs.inc"->
%'' wuf73.asp
Dimcmdtest, prMtest, restest
SetCmdest = server.createObject ("adodb.command")
cmdtest.ActiveConnection = CNN
cmdtest.commandtext = "returnopper" '' gespeicherter Verfahrensname
cmdtest.commandType = adcmdStoredProc
SetPrmtest = cmdTest.CreateParameter ("returnValue", Adinteger, adparamreturnValue)
CMDTEST.PARAMETERS.APPENDPRMTEST
SetRStest = cmdTest.execute ()
Whilenotrstest.eof
Response.writerStest (0) & "] [" & rstest (1) & ""
rstest.Movenext
Wend
rstest.close: setRStest = nichts
'' Bevor Sie cmdTest zurückgeben ("returnValue"), muss Restest zuerst geschlossen sein, andernfalls ist das Ergebnis falsch
IfcmdTest ("returnValue") = 1Then
Response.write "hat diesen Mitarbeiter"
Anders
Antwort.Write "No Employee"
Endif
Cnn.close
SetPrmtest = nichts
SetCmdTest = nichts: setCnn = nichts
%>
3.. Wie man mit Big Data umgeht
Die "Big Data" hier bezieht sich hauptsächlich auf die Felder von Text (großer Text) und Bild (Bild). Die Daten können nicht mit den oben beschriebenen Methoden korrekt erhalten werden. Sie müssen zuerst Size = restest (0) verwenden .ActualSize, um die tatsächliche Länge des Feldwerts zu erhalten, und dann Restest (0) .GetChunk (Größe) verwenden, um die Daten zu erhalten. Da diese Felder in der tatsächlichen Verwendung relativ groß sind, wird im Allgemeinen ein segmentiertes Lesen angewendet, um Serverressourcen vernünftig zu sparen und zu verwenden. Beispiel WUF74.asp:
%@Sprache = vbScript%>
!-#includeFile = "adoSql7.asp"->
!-#includeFile = "adovbs.inc"->
%'' wuf74.asp
Dimstrsql, Restest
'pr_info ist ein Textfeld
STRSQL = "SELECTPR_INFO, PUB_IDFROMPUB_INFO"
SetRStest = cnn.execute (STRSQL)
DimbaSicSizsize, BeginSize, ltext
Dowhilenotrstest.eof
Antwort.Writerstest (1) & "" "
'1024 Bytes pro Lesen
BasicSize = 1024
BeginnSize = 0
Während BeginSizerStest (0) .ActualSize
Ltext = restest (0) .Getchunk (BasicSize)
BeginSize = BeginSize+BasicSize
'Ausgangssegment nach Segment zum Client
Response.writeltext
Wend
Response.write "" "
rstest.Movenext
Schleife
Cnn.close
SetRStest = nichts: setcnn = nichts
%>
In diesem Beispiel werden jedes Mal maximal 1024 Bytes gelesen und mehrmals gelesen. Im Gegenteil, wenn Sie Big Data in die Datenbank schreiben, ähnelt die Methode der oben genannten, aber anstatt die GetChunk -Methode zu verwenden, verwenden Sie die AppendChunk -Methode:
RSTEST (0) .AppendChunkLText
Hinweis: Schließlich werde ich einen kleinen Tipp über die SQLServer -Datenbank einführen. Wenn Sie auf diese Situation gestoßen sind: Die chinesischen Daten in der Datenbank werden in verstümmelter Code angezeigt, panikieren Sie bitte keine Panik. Sie müssen nur zu meiner Website gehen, um SQLSRV32.Dll die Datei mit demselben Namen unter "C:/Windows/System" zu überschreiben. Die Quelle des Problems ist der SQLServer -Treiber, der normalerweise in Windows 98 Version 2 (die Versionsnummer des SQLServer -Treibers beträgt 3.70.06.23) oder Windows 2000 oder MDAC2.5 installiert (die Versionsnummer ist 3.70.08.20).
Das obige ist ein Tutorial zur Verwendung von ASP -Speicher. Ich glaube, Sie haben alles gelernt. Weitere verwandte Inhalte finden Sie weiterhin dem Wonew -Technologiekanal.