作者:請使用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> |
對於一個大型的查詢來說,這樣做會增加指令碼的處理時間,這是由於伺服器需要處理大量的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
注釋:The 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>"," ") %> <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。