<%
'Createconnection/recordset
'Populatedataintorecordsetobject
%>
<TABLE>
<%DoWhilenotrs.EOF%>
<TR>
<TD><%=rs("Field1")%></TD>
<TD><%=rs("Field2")%></TD>
.
</TR>
<%rs.MoveNext
Loop%>
</TABLE>
如果查詢結果很多,服務器解釋你的ASPscript將花費大量的時間,因為有許多的Response.Write語句要處理.如果你將輸出的全部結果放在一個很長的字符串裡(從到),那麼服務器只需解釋一遍Response.Write語句,速度就會快得多.微軟公司裡的一些能幹的傢伙已經將想法變成了現實.(注意,這是一個ADO2.0以上才有的特性.如果你還在使用以前版本的話,請升級到最新版)
有了GetString方法,我們就可以僅用一個Response.Write來顯示所有的輸出了,它就像是能判斷Recordset是否為EOF的DO...LOOP循環。
GetString的用法如下(所有的參數都是可選的):
String=recordset.GetString(StringFormat,NumRows,ColumnDelimiter,RowDelimiter,NullExpr)
要從Recordset的結果裡生成HTML表格,我們只需關心GetString的5個參數中的3個:
ColumnDelimiter(分隔記錄集的列的HTML代碼),RowDelimiter(分隔記錄集的行的HTML代碼),和NullExpr(當前記錄為空時應生成的HTML代碼)。就像你在下面生成HTML表格的例子裡所看到的那樣,每列用[td]...[/td]分隔,每行用[tr]...[/tr]分隔。例子的代碼:
以下是引用片段:
<%@LANGUAGE="VBSCRIPT"%>
<%OptionExplicit'Goodcodingtechnique
'EstablishconnectiontoDB
Dimconn
Setconn=Server.CreateObject("ADODB.Connection")
conn.Open"DSN=Northwind;"
'Createarecordset
Dimrs
Setrs=Server.CreateObject("ADODB.Recordset")
rs.Open"Select*FROMtable1",conn
'Storeouronebigstring
DimstrTable
strTable=rs.GetString(,,"</td><td>","</td></tr><tr><td>" ,"")
%>
<HTML>
<BODY>
<TABLE>
<TR><TD>
<%Response.Write(strTable)%>
</TR></TD>
</TABLE>
</BODY>