Viele ASP-Programmierer haben die Erfahrung gemacht, Datenbankabfragen auszuführen und die Abfrageergebnisse dann in HTML-Tabellen anzuzeigen. Normalerweise machen wir das:
| Hier ein Zitat: <% 'Verbindung/Recordset erstellen 'Daten in Recordset-Objekt füllen %> <TABELLE> <% Do While not rs.EOF %> <TR> <TD ><%=rs(Field1)% ></TD> <TD ><%=rs(Field2)% ></TD> . </TR> <% rs.MoveNext Schleife %> </TABLE> |
Wenn viele Abfrageergebnisse vorliegen, dauert es lange, bis der Server Ihr ASP-Skript interpretiert, da viele Response.Write-Anweisungen verarbeitet werden müssen. Wenn Sie alle Ausgabeergebnisse in eine lange Zeichenfolge (von bis) einfügen. , dann muss der Server die Response.Write-Anweisung nur einmal interpretieren, und es wird viel schneller gehen. Einige fähige Leute bei Microsoft haben die Idee in die Realität umgesetzt (Beachten Sie, dass dies eine Funktion ist, die nur in ADO 2.0 und höher verfügbar ist). Wenn Sie noch die vorherige Version verwenden, aktualisieren Sie bitte auf die neueste Version)
Mit der GetString-Methode können wir nur ein Response.Write verwenden, um alle Ausgaben anzuzeigen. Es ist wie eine DO... LOOP-Schleife, die bestimmen kann, ob das Recordset EOF ist.
Die Verwendung von GetString ist wie folgt (alle Parameter sind optional):
String = Recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
Um eine HTML-Tabelle aus den Ergebnissen des Recordset zu generieren, müssen wir uns nur um drei der fünf Parameter von GetString kümmern:
ColumnDelimiter (der HTML-Code, der die Spalten des Recordsets trennt), RowDelimiter (der HTML-Code, der die Zeilen des Recordsets trennt) und NullExpr (der HTML-Code, der generiert werden soll, wenn der aktuelle Datensatz leer ist). Wie Sie im Beispiel der Generierung einer HTML-Tabelle unten sehen können, ist jede Spalte durch ... und jede Zeile durch ... getrennt. Beispielcode:
| Hier ein Zitat: <%@ LANGUAGE=VBSCRIPT %> <% Option Explicit 'Gute Codierungstechnik 'Verbindung zur DB herstellen Schwacher Anschluss Setze conn = Server.CreateObject(ADODB.Connection) conn.Open DSN=Northwind; 'Erstellen Sie einen Datensatz Dimrs Setze rs = Server.CreateObject(ADODB.Recordset) rs.Open SELECT * FROM table1, conn „Bewahren Sie unsere einzige große Saite auf.“ StrTable dimmen strTable = rs.GetString(,,</td><td>,</td></tr><tr><td> , ) %> <HTML> <KÖRPER> <TABELLE> <TR ><TD> <% Response.Write(strTable) %> </TR></TD> </TABLE> </BODY> </HTML> <% „Aufräumen! rs.Schließen Setrs=Nichts conn.Schließen Setze conn = Nothing %> |
Die Zeichenfolge strTable wird zum Speichern des Codes der HTML-Tabelle verwendet, die wir aus den Ergebnissen von SELECT * FROM table1 generiert haben.
Zwischen jeder Spalte der HTML-Tabelle befindet sich HTML-Code, und zwischen jeder Zeile gibt die GetString-Methode den korrekten HTML-Code aus und speichert ihn in strTable, sodass wir für die Ausgabe nur eine Zeile Response.Write benötigen Schauen wir uns ein einfaches Beispiel an, in dem wir davon ausgehen, dass unsere Abfrageergebnisse die folgenden Zeilen und Spalten zurückgeben:
| Hier ein Zitat: Spalte1 Spalte2 Spalte3 Reihe 1 Bob Smith 40 Zeile 1 Ed Frank 43 Zeile 1 Sue Void 42 |
Die von der GetString-Anweisung zurückgegebene Zeichenfolge lautet:
| Hier ein Zitat: Bob</td ><td >Smith</td ><td >40</td ><td ></td ></tr ><tr >< td >Ed... |
Diese Zeichenfolge sieht lang und unübersichtlich aus, ist aber der gewünschte HTML-Code. (Beachten Sie, dass wir es im handgeschriebenen HTML-Code dahinter einfügen. Dies liegt daran, dass unsere Formatierungszeichenfolge nicht die Zeichenfolgen enthält, die für die Kopf- und Fußzeile dieser Tabellen erforderlich sind.)