Verwendung gespeicherter Prozeduren zur Implementierung des ASP-Datenbankzugriffs
Autor:Eve Cole
Aktualisierungszeit:2009-06-24 17:21:43
1. Überblick über ADO
ActiveX Data Objects (ADO) ist eine benutzerfreundliche und skalierbare Technologie zum Hinzufügen von Datenbankzugriff zu Ihren Webseiten. Mit ADO können Sie prägnante und skalierbare Skripts schreiben, um eine Verbindung zu OLE DB-kompatiblen Datenquellen wie Datenbanken und Tabellenkalkulationen herzustellen , sequentielle Datendateien oder E-Mail-Verzeichnisse. OLE DB ist eine Programmierschnittstelle auf Systemebene, die eine Reihe von Standard-COM-Schnittstellen zur Anzeige der Funktionen des Datenbankverwaltungssystems bereitstellt. Mit dem Objektmodell von ADO können Sie problemlos auf diese Schnittstellen zugreifen (mithilfe einer Skriptsprache wie VBScript oder JScript) und Datenbankfunktionen zu Ihrer Webanwendung hinzufügen. Darüber hinaus können Sie mit ADO auf ODBC-kompatible Datenbanken (Open Database Connectivity) zugreifen.
Wenn Sie ein Skriptautor sind und sich mit Datenbankverbindungen auskennen, werden Sie feststellen, dass die Befehlssyntax von ADO einfach und benutzerfreundlich ist. Wenn Sie ein erfahrener Entwickler sind, werden Sie den skalierbaren, leistungsstarken Zugriff, den ADO auf eine Vielzahl von Datenquellen bietet, zu schätzen wissen.
2. Allgemeine Methoden für den Zugriff auf die Datenbank. Der allgemeine Zugriff auf die Datenbank erfolgt gemäß den folgenden Schritten: Erstellen Sie zunächst ein Objekt der ADODB.Connection-Schnittstelle und binden Sie dann die entsprechende Datenquelle an dieses Objekt kann die benannte Datenquelle und die unbenannte Datenquelle verwenden), je nach Bedarf einen Datensatzsatz erstellen oder nicht erstellen und dann eine Verknüpfung zur Datenquelle herstellen und die Ausführungs- oder Öffnungsmethode verwenden, um die entsprechende Tabelle zu bedienen.
Die allgemeine Methode des ASP-Zugriffs auf die Datenbank:
<
Setze oConn=Server.CreateObject("ADODB.Connection")
Setze oRS=Server.CreateObject("ADODB.RecordSet")
set strConn="Provider=SQLOLEDB;Benutzer-ID=sa; Initial Catalog=Pubs;Data Source=" &request.ServerVariables("SERVER_NAME")
oConn.open strConn
set ORS=oConn.execute("select * from test")
>
Oben wird erläutert, wie OLEDB für unbenannte Links verwendet wird. Wenn es sich um einen benannten Link handelt, legen Sie ihn als Datenquelle fest und der Benutzername und das Kennwort sind beide leer. Sie müssen nur die obige Anweisung oConn.open „test“ neu schreiben. ,"",""
Das Obige stellt kurz die allgemeinen Methoden des Datenbankzugriffs auf Webseiten vor. Diese sind bereits sehr ausgereift und sehr nützlich. Wenn der Zugriff auf bestimmte Daten in der Praxis zu kompliziert ist, sind zum Schreiben fast 10 SQL-Anweisungen erforderlich Darüber hinaus ist es manchmal notwendig, den gleichen Verarbeitungsprozess auf verschiedenen Webseiten zu verwenden, und dies ist der größte Vorteil bei der Verwendung gespeicherter Prozeduren. Die Vertraulichkeit ist relativ hoch und es wird in der Datenbank des Remote-Servers gespeichert.
3. Die Verwendung gespeicherter Prozeduren in ASP ADO ermöglicht den Zugriff auf gespeicherte Prozeduren, was die Verwendung des Befehlsobjekts erfordert. Auf diesem Objekt können Benutzer die gespeicherten Prozeduren des SQL-Servers direkt ausführen und die im Befehl erforderlichen Parameter eingeben Es wird mit seinen Eigenschaften Pamaters verarbeitet.
Beachten Sie, dass ein Command-Objekt, damit es gültig ist, einem Connection-Objekt zugeordnet werden muss, indem die ActiveConnection-Eigenschaft des Command-Objekts auf das Connection-Objekt festgelegt wird. Wenn ein Verbindungsobjekt nicht identifiziert werden kann, ist das Befehlsobjekt ungültig, bis Sie es einer Verbindung zuordnen.
< Dim oConn
Dim strConn
oCmd dimmen
Dim oRs,ors1
schwach aa
dimsql
Setze oConn = Server.CreateObject("ADODB.Connection")
set oCmd = Server.CreateObject("ADODB.Command")
set ors1=Server.CreateObject("ADODB.RecordSet")
„Öffnen Sie den Link, verwenden Sie die Benutzer-ID SA, das Passwort ist leer, stellen Sie eine Verbindung zur Datenbank auf dem lokalen Server her.“
strConn="Provider=SQLOLEDB;Benutzer-ID=sa;Initial Catalog=pubs;Data Source="& Request.ServerVariables("SERVER_NAME")
„Wenn Sie eine Verbindung zu einer Remote-Datenbank herstellen, lautet die Datenbankadresse: 10.82.88.105, der Benutzer ist tmp und das Passwort ist 123.
'Die folgende Methode kann verwendet werden' strConn="Provider=SQLOLEDB;Benutzer-ID=tmp;pwd=123;Initial Catalog=tjbb;Data Source="& "10.82.88.110"
oConn.Open strConn
'Fügen Sie den eingerichteten Link zum aktiven Linkattribut des Befehls hinzu
Legen Sie oCmd.ActiveConnection = oConn fest
'Legen Sie die aufrufende gespeicherte Prozedur nach Lizenzgebühren und Parametern fest. Die Parameter sind nach? einführen
oCmd.CommandText = "{call byroyalty(?)}"
oCmd.Parameters.Append oCmd.CreateParameter("@Percentage", adInteger, adParamInput)
' Eingabeparameter bereitstellen
oCmd("@Percentage") = 75
„Die Verwendung der oben genannten Eingabeparameter in ASP kann auch ohne Parameterattribute erreicht werden. Verwenden Sie einfach & in VB, um die entsprechenden Daten im Befehlstext zu bilden.“ Die Verwendung von Parametern ist besonders nützlich bei der Ausgabe
Setze oRs = oCmd.Execute
ors1.activeconnection=oconn
„Allgemeine SQL-Anweisungen können in diesem Befehlsobjekt auch mithilfe der Attribute „Quelle“ und „open“ verwendet werden, wobei „Quelle“ auf die Datenquelle verweist.
ors1.source = „wählen Sie * aus [tmptable] aus, wobei Jahr=2000 und Monat=1“
ors1.cursorttype=adopenstatic
ors1.open
>
4. Einführung in gespeicherte Prozeduren in SQL Mit der SQL-Sprache können Sie gespeicherte Prozeduren für den Datenbankzugriff schreiben. Die Syntax lautet wie folgt:
CREATE PROC[EDURE] Prozedurname [;Nummer]
[
{@parameter data_type} [VARYING] [= Standard] [OUTPUT]
]
[,...N]
[MIT
{
NEU KOMPILIEREN
|. VERSCHLÜSSELUNG
|. NEU KOMPILIEREN, VERSCHLÜSSELN
}
]
[ZUR REPLIKATION]
ALS
sql_statement [...n]
Der Inhalt in [ ] ist optional, während der Inhalt in () erforderlich ist.
Beispiel: Wenn der Benutzer eine gespeicherte Prozedur Select_delete erstellen möchte, um Datensätze in der Tabelle tmp zu löschen, kann sie wie folgt geschrieben werden:
Erstellen Sie Proc select_del As
Tmp löschen
Beispiel: Der Benutzer möchte die gespeicherte Prozedur nach Daten eines bestimmten Jahres in der tmp-Tabelle abfragen
Erstellen Sie proc select_query @year int as
Wählen Sie * aus tmp aus, wobei Jahr=@Jahr ist
Hier ist @year ein Parameterbeispiel für eine gespeicherte Prozedur: Diese gespeicherte Prozedur beginnt bei einem bestimmten Knoten n, um den übergeordneten Knoten der obersten Ebene zu finden. Dieser häufig verwendete Prozess kann von einer gespeicherten Prozedur ausgeführt und in Webseiten wiederverwendet werden Teilen.
Leer: Zeigt an, dass der Knoten ein Knoten der obersten Ebene ist
fjdid (Nummer des übergeordneten Knotens)
Knoten n ist nicht leer: Gibt die übergeordnete Knotennummer des Knotens an
dwmc (Einheitsname)
CREATE proc search_dwmc @dwidold int,@dwmcresult varchar(100) Ausgabe
als
deklariere @stop int
deklariere @result varchar(80)
deklariere @dwmc varchar(80)
deklariere @dwid int
nocount einschalten
setze @stop=1
setze @dwmc=""
Wählen Sie @dwmc=dwmc,@dwid=convert(int,fjdid) aus jtdw, wobei id=@dwidold
set @result=rtrim(@dwmc)
wenn @dwid=0
setze @stop=0
while (@stop=1) und (@dwid<>0)
beginnen
setze @dwidold=@dwid
Wählen Sie @dwmc=dwmc,@dwid=convert(int,fjdid) aus jtdw, wobei id=@dwidold
wenn @@rowcount=0
setze @dwmc=""
anders
setze @result=@dwmc+@result
if (@dwid=0) oder (@@rowcount=0)
setze @stop=0
anders
weitermachen
Ende
set @dwmcresult=rtrim(@result)
Die vollständige und sinnvolle Verwendung gespeicherter Prozeduren kann den Serverdurchsatz verbessern, um Daten aus fast 20 Tabellen abzurufen und diese in einer allgemeinen Tabelle zu kombinieren, wobei die erforderliche Zeit etwa 7 Sekunden beträgt Der Betrieb kann die Serverentwicklung mithilfe vernünftigerer dynamischer Webseiten auf ein höheres Niveau verbessern und die gespeicherten Prozeduren vollständig nutzen, wodurch die durch das Webdesign verursachte schwere Verarbeitung reduziert werden kann, sodass der geschriebene Code gemeinsam genutzt und sinnvoll genutzt werden kann Der Code kann in der Datenbank des Servers versteckt werden, einige Technologien werden vertraulich behandelt. Dies ist auch ein wichtiges Merkmal gespeicherter Prozeduren.