Latest web development tutorials

ADO 通過GetString() 加速腳本

請使用GetString() 方法來加速您的ASP 腳本(來代替多行的Response.Write)。


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

對於一個大型的查詢來說,這樣做會增加腳本的處理時間,這是由於服務器需要處理大量的Response.Write 命令。

解決的辦法是創建全部字符串,從<table> 到</table>,然後將其輸出- 只使用一次Response.Write。


GetString() 方法

GetString() 方法使我們有能力僅使用一次Response.Write,就可以顯示所有的字符串。 同時它甚至不需要do..loop 代碼以及條件測試來檢查記錄集是否處於EOF。

語法

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

如需使用來自記錄集的數據創建一個HTML 表格,我們僅僅需要使用以上參數中的三個(所有的參數都是可選的):

  • coldel - 用作列分隔符的HTML
  • rowdel - 用作行分隔符的HTML
  • nullexpr - 當列為空時所使用的HTML

注意: GetString()方法是ADO 2.0的特性。 您可從下面的地址下載ADO 2.0: http://www.microsoft.com/data/download.htm

在下面的例子中,我們將使用GetString() 方法,把記錄集存為一個字符串:

實例

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

上面的變量str 包含著由SELECT 語句返回的所有列和行的一個字符串。 在每列之間會出現</td><td>,在每行之間會出現</td></tr><tr><td>。 這樣,僅使用一次Response.Write,我們就得到了需要的HTML。