ADO durch GetString() beschleunigen

请使用 GetString() 方法来加速您的 ASP 脚本(来代替多行的 Response.Write)。

实例

使用 GetString()
如何使用 GetString() 在 HTML 表格中显示记录集中的数据。

多行 Response.Write

下面的例子演示了在 HTML 表格中显示数据库查询的一种方法:

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

Für eine große Abfrage erhöht dies die Verarbeitungsdauer des Skripts, da der Server eine Vielzahl von Response.Write-Befehlen verarbeiten muss.

Die Lösung besteht darin, den gesamten String von <table> bis </table> zu erstellen und ihn dann einmalig mit Response.Write auszugeben.

Methode GetString()

Die Methode GetString() ermöglicht es uns, alle Strings mit nur einem Aufruf von Response.Write anzuzeigen. Und es ist sogar nicht erforderlich, do..loop-Code sowie Bedingungstests zu verwenden, um zu überprüfen, ob die Recordset im EOF ist.

Syntax

str = rs.GetString(format, rows, coldel, rowdel, nullexpr)

Um eine HTML-Tabelle aus den Daten der Recordset zu erstellen, benötigen wir nur drei der oben genannten Parameter (alle Parameter sind optional):

  • coldel - HTML, das als Spalten-Trennzeichen dient
  • rowdel - HTML, das als Zeilen-Trennzeichen dient
  • nullexpr - HTML, das verwendet wird, wenn eine Spalte leer ist

Anmerkung:Die Methode GetString() ist eine Eigenschaft von ADO 2.0. Sie können ADO 2.0 von der folgenden Adresse herunterladen:http://www.microsoft.com/data/download.htm

In den folgenden Beispielen verwenden wir die Methode GetString(), um die Recordset als String zu speichern:

<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 Variable str enthält eine Zeichenfolge, die alle Spalten und Zeilen, die durch ein SELECT-Statement zurückgegeben werden, enthält. Zwischen den Spalten wird </td><td> und zwischen den Zeilen </td></tr><tr><td> angezeigt. Auf diese Weise erhalten wir mit nur einem Aufruf von Response.Write die erforderliche HTML.