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>","&nbsp;")
%>

<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.