ADO beschleunigen mit GetString()
Verwenden Sie die GetString()-Methode, um Ihr ASP-Skript zu beschleunigen (anstatt mehrere Response.Writes zu verwenden).
Multiple Response.Write's
Das folgende Beispiel zeigt eine Möglichkeit, eine Datenbankabfrage in einer HTML-Tabelle anzuzeigen:
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
%>
<table border="1" width="100%">
<%do until rs.EOF%>
<tr>
<td><%Response.Write(rs.fields("Companyname"))%></td>
<td><%Response.Write(rs.fields("Contactname"))%></td>
</tr>
<%rs.MoveNext
loop%>
</table>
<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>
Bei einer großen Abfrage kann dies die Skriptverarbeitungszeit verlangsamen, da viele Response.Write-Befehle vom Server verarbeitet werden müssen.
Die Lösung besteht darin, den gesamten String von <table> bis </table> erstellen zu lassen und ihn dann auszugeben – und zwar nur einmal mit Response.Write.
Die GetString()-Methode
Mit der Methode GetString() können Sie den String mit nur einem Response.Write anzeigen. Es eliminiert auch den do...loop-Code und den Bedingungstest, der überprüft, ob sich das Recordset am EOF befindet.
Syntax
str = rs.GetString(format,rows,coldel,rowdel,nullexpr)
Um eine HTML-Tabelle mit Daten aus einem Recordset zu erstellen, müssen wir nur drei der oben genannten Parameter verwenden (alle Parameter sind optional):
- coldel - das als Spaltentrennzeichen zu verwendende HTML
- rowdel - das als Zeilentrennzeichen zu verwendende HTML
- nullexpr - der zu verwendende HTML-Code, wenn eine Spalte NULL ist
Hinweis: Die GetString()-Methode ist eine Funktion von ADO 2.0. Sie können ADO 2.0 unter https://www.microsoft.com/data/download.htm herunterladen .
Im folgenden Beispiel verwenden wir die Methode GetString(), um das Recordset als String zu speichern:
Beispiel
<html>
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "SELECT Companyname, Contactname FROM Customers", conn
str=rs.GetString(,,"</td><td>","</td></tr><tr><td>"," ")
%>
<table border="1" width="100%">
<tr>
<td><%Response.Write(str)%></td>
</tr>
</table>
<%
rs.close
conn.close
set rs = Nothing
set conn = Nothing
%>
</body>
</html>
Die obige Variable str enthält eine Zeichenfolge aller Spalten und Zeilen, die von der SQL SELECT-Anweisung zurückgegeben werden. Zwischen jeder Spalte wird der HTML-Code </td><td> angezeigt, und zwischen jeder Zeile wird der HTML-Code </td></tr><tr><td> angezeigt. Dadurch wird mit nur einem Response.Write genau der HTML-Code erzeugt, den wir benötigen.