ASP-Vorlesung 6: ASP und Datenbank (1)
Autor:Eve Cole
Aktualisierungszeit:2009-05-30 19:55:05
In den vorherigen Vorlesungen haben wir die Grundinhalte von ASP kennengelernt. Mithilfe dieses Wissens können Sie ASP bereits zum Erstellen einer Website verwenden. Aber im Allgemeinen kann eine echte und vollständige Website nicht von einer Datenbank getrennt werden, da eine kleine Menge an Daten, wie z. B. die Anzahl der Webseitenbesucher, in Textdateien gespeichert werden kann, in tatsächlichen Anwendungen jedoch die Daten, die benötigt werden Gespeichert wird viel mehr als das, und diese Daten hängen oft zusammen. Mithilfe einer Datenbank können diese Daten einfach abgefragt und aktualisiert werden. Es gibt viele Arten von Datenbanken, wie zum Beispiel: Fox-Datenbank (.dbf), Access-Datenbank (.mdb), Informix, Oracle und SQL Server usw. In dieser Vorlesung werde ich Microsoft Access-Datenbank und SQL Server 7.0 als Beispiele verwenden Veranschaulichen Sie, wie ASP auf die Datenbank zugreift. Warum ASP wählen? Statistiken zeigen, dass SQL Server 7.0 derzeit die schnellste und kostengünstigste Datenbank ist und viele große Websites wie www.8848.net, www.dell.com, www.hotbot.com mit ASP-Technologie erstellt werden, also ASP Es ist eine relativ einfach zu beherrschende und sehr praktische Technologie. Sie sollten versuchen, sich ihr zu nähern, sie zu verstehen und sie dann mit Zuversicht und Mut anzuwenden.
Welche Vorbereitungen sollten vor dem weiteren Studium getroffen werden:
1. Wenn Sie noch nie mit einer Datenbank in Berührung gekommen sind, empfiehlt es sich, zunächst Microsoft Access in Office zu installieren und sich die Grundkenntnisse von Datenbanken anzueignen.
2. Am besten installieren Sie Microsoft SQL Server 7.0. Nach der Installation kann es sofort ohne Einstellungen verwendet werden. Beachten Sie, dass die DeskTop-Version unter Windows 9.x installiert werden sollte, während Versionen vor 7.0 nur unter NT Server installiert werden können.
3. Der als nächstes besprochene Inhalt erfordert eine Komponente namens MDAC (Microsoft Data Access Components). Diese Komponente ist bereits in ASP enthalten. Wenn Sie mehr über den relevanten Inhalt erfahren oder die neueste Version herunterladen möchten, besuchen Sie http://www. microsoft.com/data.
1. Herstellen einer Verbindung mit der Datenbank Lassen Sie mich vor dem offiziellen Start ADO – ActiveX-Datenobjekte vorstellen. Wenn Sie mit diesem Konzept noch nicht vertraut sind, müssen Sie sich ADO nur als Brücke zwischen ASP und der Datenbank vorstellen.
(1) Methode 1 zum Herstellen einer Verbindung mit der Microsoft Access-Datenbank: Beispiel wuf40.asp
<% @LANGUAGE = VBScript %>
<% ' wuf40.asp
Option explizit
Dim Cnn, StrCnn
' 1 - Verbindungsobjekt erstellen
Setze Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("asp") & "NorthWind.mdb;"
'2 – Öffnen Sie die Datenbank mit der Open-Methode des Connection-Objekts
Cnn.Open StrCnn
Response.Write Server.MapPath("asp") & "NorthWind.mdb;"
Response.Write „Datenbankverbindung erfolgreich: „ & Cnn.State & „<br>“
'3 – Schließen Sie die Verbindung mit der Close-Methode des Connection-Objekts
Cnn.schließen
Response.Write „Die Datenbank wurde geschlossen:“ & Cnn.State
'4 – Löschen Sie das Verbindungsobjekt aus dem Speicher, um Ressourcen freizugeben
Setze Cnn = Nichts
%>
Northwind.mdb ist eine Beispieldatenbank, die mit Microsoft Access97 geliefert wird. Sie befindet sich normalerweise im Verzeichnis „Microsoft OfficeOfficeSamples“. Sie können diese Datei dann in das entsprechende Verzeichnis des Webservers kopieren Platzieren Sie es beispielsweise in C:InetPubhomeasp).
Hier konvertiert die MapPath-Methode des Serverobjekts den angegebenen virtuellen Pfad in einen realen Dateipfad und das Endergebnis ist ähnlich wie: C:InetPubhomeaspNorthwind.mdb.
Methode 2: Verwenden Sie OLE DB, um eine Microsoft Access-Verbindung zu erstellen. Die wichtigsten Teile sind unten aufgeführt.
Setze Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider = Microsoft.Jet.OLEDB.4.0; Datenquelle = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
(2) Methode 1 zum Herstellen einer Verbindung mit der SQL Server-Datenbank: Verwenden Sie OLE DB, um eine Verbindung zu SQL Server herzustellen. Weitere Informationen finden Sie in der Routine wuf41.asp.
Setze Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = „Provider=sqloledb; Benutzer-ID=sa; Passwort=; Erstkatalog=pubs; Datenquelle=ICBCZJP“
Cnn.Open StrCnn
Geben Sie den Datenbanknamen nach „Initial Catalog“ und den Computernamen nach „Data Source“ (d. h. den Computernamen unter „Netzwerk → Eigenschaften → Identität“) oder die IP-Adresse (der DNS-Dienst muss installiert sein) an.
Methode zwei:
Setze Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Driver={SQL Server};Server=ICBCZJP;UID=sa;PWD=;Database=pubs"
Cnn.Open StrCnn
Zusätzlich zu den beiden oben genannten Methoden können Sie natürlich auch die klassischste Methode verwenden, die in vielen Artikeln und Materialien vorgestellt wird: die Verwendung von ODBC zum Generieren einer Verbindung. Das heißt, zuerst eine Verbindung in „ODBC-Datenquellen“ im Webserver-Kontrollfeld herzustellen und dann eine Verbindungszeichenfolge ähnlich wie „StrCnn =“DSN=ADOCnn;Database=pubs“ in ASP zu verwenden . Ich werde es hier nicht im Detail vorstellen. Erstens ist dies nicht die beste Methode. Zweitens wurde diese Methode von anderen Materialien eingeführt.
Darüber hinaus können Sie bei Interesse die Routine wuf42.asp herunterladen, um zu sehen, wie Sie die Eigenschaften ConnectionTimeout und ConnectionString des Connection-Objekts verwenden.
2. Die Datenbank beginnt hier – Abruf von Daten, die bereits in der Datenbank vorhanden sind. Es wird nun davon ausgegangen, dass Sie bereits über die grundlegendsten Datenbankkenntnisse verfügen und wissen, wie Sie Microsoft Access verwenden, um die Tabelle „Shipper“ in Northwind.mdb zu öffnen und anzuzeigen die in der Tabelle gespeicherten Daten. Die Frage ist nun, wie man ASP verwendet, um diese Daten im Browser anzuzeigen. Hier sind drei Methoden.
Besondere Erinnerung: Wenn Ihre Datenbankbasis schwach ist, müssen Sie nur die zweite Methode verwenden können. Seien Sie nicht gierig, nicht zu weit zu gehen, also denken Sie daran! Erinnern!
Methode 1: Verwenden Sie nur das Connection-Objekt. Beispiel wuf43.asp
<% @LANGUAGE = VBScript %>
<% ' wuf43.asp
Option explizit
„Dieser Satz ist sehr wichtig, er kann sicherstellen, dass die Daten, die Sie sehen, nicht die auf dem Client zwischengespeicherten Daten sind.“
„Aber die aktuellsten Daten werden jederzeit auf der Serverseite aktualisiert.“
Response.Expires = 0
„Teil 1: Eine Verbindung herstellen.“
Dim Cnn, StrCnn
Setze Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider = Microsoft.Jet.OLEDB.4.0; Datenquelle = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
„Teil 2: Verwenden Sie die Execute-Methode des Connection-Objekts, um das Recordset abzurufen
Dimmen Sie StrSQL, rsTest
„Das Folgende ist eine SQL-Anweisung (strukturierte Abfrageanweisung), die in dieser Vorlesung nicht im Detail vorgestellt wird.“ Die grundlegende Verwendung ist relativ einfach und Sie können sie lernen, sobald Sie sie gelernt haben.
„Dieser Satz bedeutet, alle Daten aus der Trägertabelle auszuwählen.“
StrSQL = „Auswählen * Vom Versender“
Setze rsTest = Cnn.Execute(StrSQL)
%>
<HTML>
<KÖRPER>
<% 'Teil 3: Zeigen Sie den erhaltenen Datensatz im Browser an
'Schleife bis zum Ende des Datensatzes - Anzeige Zeile für Zeile, Datensatz für Datensatz
Tun Sie dies, ohne rsTest.EOF
'Die folgenden zwei Zeilen haben den gleichen Effekt, das heißt, rsTest("Shipper ID") ist äquivalent zu rsTest(0)
Response.Write rsTest("Shipper ID") & " " & rsTest("Firmenname") & " " & rsTest("Telephone") & " " & "<BR>"
'Response.Write rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
„Zum nächsten Datensatz wechseln – dieser Satz darf nicht weggelassen werden, sonst gerät er in eine Endlosschleife.“
rsTest.MoveNext
Schleife
„Teil 4: Das Schlachtfeld aufräumen.“
Cnn.schließen
Setze rsTest = Nothing: Setze Cnn = Nothing
%>
</BODY>
</HTML>
Dieses Beispiel ist sehr einfach. Der dritte Teil zeigt die Daten im typischen Ausgabestil der Datenbank. Sie können auf das zuvor erlernte Wissen zurückgreifen und Tabellen und Farben hinzufügen, um die Ausgabeergebnisse zu verschönern.
Nicht-Junior-Benutzer können auf wuf44.asp verweisen, um die vollständige Verwendung der Execute-Methode zu sehen.
Methode 2: Durch Erstellen eines Recordset-Objekts – denken Sie daran, dass Anfänger diese Methode nur beherrschen müssen.
Beispiel: wuf45.asp, andere Teile sind die gleichen wie wuf43.asp, der Schlüssel liegt im zweiten Teil des Programms.
„Teil 2: Holen Sie sich das Recordset, indem Sie ein RecordSet-Objekt erstellen
Dimmen Sie StrSQL, rsTest
'Recordset-Objekt erstellen
Setze rsTest = Server.CreateObject("ADODB.Recordset")
StrSQL = „Wählen Sie Netzbetreiber-ID, Telefonnummer und Firmennamen aus. Vom Netzbetreiber. Wo Telefonnummer = ‚(503) 555-9931‘“
'Fügen Sie das Recordset-Objekt der Verbindung Cnn hinzu
Legen Sie rsTest.ActiveConnection = Cnn fest
'Öffnen Sie das Recordset mit der Open-Methode des Recordset-Objekts
rsTest.StrSQL öffnen
Schauen wir uns nun die vollständige Verwendung der Open-Methode des Recordset-Objekts an, zum Beispiel wuf48.asp.
<% @LANGUAGE = VBScript %>
<% ' wuf48.asp
Option explizit
Response.Expires = 0
%>
<!--#include file="adovbs.inc"-->
<%
„Teil 1: Eine Verbindung herstellen.“
Dim Cnn, StrCnn
Setze Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider = Microsoft.Jet.OLEDB.4.0; Datenquelle = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
„Teil 2: Holen Sie sich das Recordset, indem Sie ein RecordSet-Objekt erstellen
Dimmen Sie rsTest
Setze rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.Open „Shipper“,Cnn,adOpenForwardOnly,adLockReadOnly,adCmdTable
%>
<HTML>
<KÖRPER>
<% 'Teil 3: Zeigen Sie den erhaltenen Datensatz im Browser an
Tun Sie dies, ohne rsTest.EOF
Response.Write rsTest(0) & " " & rsTest(1) & " " & rsTest(2) & " " & "<BR>"
rsTest.MoveNext
Schleife
„Teil 4: Das Schlachtfeld aufräumen.“
rsTest.Close: Cnn.Close
Setze rsTest = Nothing: Setze Cnn = Nothing
%>
</BODY>
</HTML>
analysieren:
1. Schauen Sie sich zunächst die Schlüsselsätze an:
rsTest.Open „Shipper“,Cnn,adOpenForwardOnly,adLockReadOnly,adCmdTable
Der erste Parameter kann ein Tabellenname (zum Beispiel: Freight Forwarder) oder eine SQL-Anweisung (zum Beispiel wuf45.asp) sein.
Der zweite Parameter gibt die aktuelle Verbindung an.
Der dritte Parameter gibt den CursorType an, der den Cursortyp bestimmt, den der Anbieter beim Öffnen des Recordset verwenden soll. Dabei wird ein Cursor verwendet, der sich nur vorwärts bewegt.
Der vierte Parameter gibt den LockType an, der die Art der Sperre (Parallelität) bestimmt, die der Anbieter beim Öffnen des Recordset verwenden soll. Geben Sie hier schreibgeschützt an.
Der fünfte Parameter bezieht sich auf den ersten Parameter. Wenn der erste Parameter in diesem Beispiel der Tabellenname ist, verwendet der fünfte Parameter adCmdTable. Wenn der erste Parameter eine SQL-Anweisung ist, ist der erste Parameter adCmdText.
rsTest.Open „Select * From Carrier“,Cnn,adOpenForwardOnly,adLockReadOnly,adCmdText
Ich glaube nicht, dass die meisten Menschen die Bedeutung dieser fünf Parameter wirklich verstehen können. Kopieren Sie sie einfach und verwenden Sie sie. Wir werden auch in Zukunft in Kontakt bleiben perfekt, wenn wir uns daran gewöhnen.
Die beiden Parameter CursorType und LockType werden im Folgenden ausführlich erläutert. Um Daten abzurufen, müssen Sie sie nur gemäß diesem Beispiel festlegen.
2. Diese fünf Parameter können auch mithilfe der Eigenschaften des Recordset-Objekts festgelegt werden, beispielsweise wuf46.asp.
„Teil 2: Holen Sie sich das Recordset, indem Sie ein RecordSet-Objekt erstellen
Dimmen Sie rsTest
Setze rsTest = Server.CreateObject("ADODB.Recordset")
rsTest.ActiveConnection = Cnn
rsTest.CursorType = adOpenForwardOnly
rsTest.LockType = adLockReadOnly
rsTest.Open „Shipper“, , , ,adCmdTable
3. Schauen Sie sich diesen Satz noch einmal an: <!--#include file="adovbs.inc"-->.
(1) Da Konstanten wie adOpenForwardOnly, adLockReadOnly und adCmdText verwendet werden, muss die Datei adovbs.inc eingebunden werden.
(2) Die Datei adovbs.inc befindet sich in der Regel im Verzeichnis ProgrammeCommon FilesSYSTEMADO. Sie können sie in das aktuelle Verzeichnis des Webservers kopieren (diese Datei ist auch im Download-Paket für diese Vorlesung enthalten). .
(3) Öffnen Sie diese Datei mit Notepad und werfen Sie einen Blick darauf. Sie werden verstehen, warum diese Datei benötigt wird.
Methode drei: Durch die Einführung des Command-Objekts – dies sollte unter der Voraussetzung untersucht werden, dass Sie dazu in der Lage sind.
<% @LANGUAGE = VBScript %>
<% ' wuf47.asp
Option explizit
Response.Expires = 0
%>
<!--#include file="adovbs.inc"-->
<%
„Teil 1: Eine Verbindung herstellen.“
Dim Cnn, StrCnn
Setze Cnn = Server.CreateObject("ADODB.Connection")
StrCnn = "Provider = Microsoft.Jet.OLEDB.4.0; Datenquelle = C:InetpubhomeaspNorthwind.mdb"
Cnn.Open StrCnn
„Teil 2: Holen Sie sich das Recordset, indem Sie ein Command-Objekt erstellen
Dimmen Sie StrSQL, rsTest, cmdTest
'Befehlsobjekt erstellen
Setze cmdTest = Server.CreateObject("ADODB.Command")
StrSQL = „MAX(Menge) AUS Bestelldetails AUSWÄHLEN“
cmdTest.CommandText = StrSQL
cmdTest.CommandType = adCmdText 'Gibt an, dass der Befehlstyp eine SQL-Anweisung ist
Legen Sie cmdTest.ActiveConnection = Cnn fest
'Verwenden Sie die Execute-Methode des Command-Objekts, um das Recordset abzurufen.
Setzen Sie rsTest = cmdTest.Execute
%>
<HTML>
<KÖRPER>
<% 'Teil 3: Zeigen Sie den erhaltenen Datensatz im Browser an
Tun Sie dies, ohne rsTest.EOF
Response.Write rsTest(0) & „<BR>“
rsTest.MoveNext
Schleife
„Teil 4: Das Schlachtfeld aufräumen.“
rsTest.Close: Cnn.Close
Setze rsTest = Nothing: Setze cmdTest=Nothing: Setze Cnn = Nothing
%>
</BODY>
</HTML>
Die Verwendung des Command-Objekts wird in Zukunft in der ausführlichen Programmierung der Datenbank erläutert.
In dieser Vorlesung wird hauptsächlich erläutert, wie Sie eine Verbindung zur Datenbank herstellen und Datenbankdaten abrufen. Denken Sie daran, dass Sie nur die folgenden Wissenspunkte erlernen müssen.
1. So verwenden Sie OLE DB, um eine Verbindung mit einer Microsoft Access-Datenbank herzustellen;
2. So verwenden Sie OLE DB zum Herstellen einer Verbindung mit einer Microsoft SQL Server-Datenbank;
3. So rufen Sie Daten aus der Datenbank ab, indem Sie ein Recordset-Objekt erstellen.