用getstring提高ASP的執行速度

2021-06-21 14:47:58 字數 2186 閱讀 2633

用getstring提高asp執行速度

許多asp程式設計師都有過執行資料庫查詢,然後將查詢結果用html**的形式顯示出來的 

經歷吧.通常我們是這麼做的:

<% 

'createconnection/recordset 

'populatedataintorecordsetobject 

%>

<%dowhilenotrs.eof%> 

<%=rs("field1")%>

<%=rs("field2")%>

... 

<%rs.movenext 

loop%> 

如果查詢結果很多,伺服器解釋你的aspscript將花費大量的時間,因為有許多的 

response.write語句要處理.如果你將輸出的全部結果放在乙個很長的字串裡(從 

到),那麼伺服器只需解釋一遍response.write語句,速度就會快得 

多.微軟公司裡的一些能幹的傢伙已經將想法變成了現實.(注意,這是乙個ado2.0 

才有的特性.如果你還在使用ado1.5話,可以在 

有了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**的例子裡所看到的那樣,每列用...分隔,每行用...分 

隔.來看看例子的**吧.

<%@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(,,"

",""," ")% 

>

<%response.write(strtable)%> 

<%

'cleanup! 

rs.close 

setrs=nothing 

conn.close 

setconn=nothing 

%>

strtable字串用於存放我們從"select*fromtable1"結果生成的html**的代 

碼.html**的每列之間都將有

的html**,每行之間的html**是 

.getstring方法將輸出正確的html**並存放在strtable中, 

這樣我們只需一行response.write便可以輸出資料集中的所有記錄.讓我們來看個簡 

單的例子,假設我們的查詢結果返回了以下的行和列:

col1col2col3 

row1bobsmith40 

row1edfrank43 

row1suevoid42

那麼getstring語句返回的字串將是:

bobsmith

40ed...

說實話,這個字串看上去冗長而雜亂,但它就是我們想要的html**.(注意看,我們 

在手工書寫的html**中,將放在response.write的前面,將 

放在它的後面.這是因為我們的格式化字串中並不含有這些 

**頭尾所需的字串.) 

用GetString提高ASP的速度

create connection recordset populate data into recordset object www.cppcns.com loop 如果查詢結果很多,伺服器解釋你的asp script將花費大量的時間,因為有許多的response.write語句要處理.如果你將輸...

用GetString來提高ASP的速度

許多asp程式設計師都有過執行資料庫查詢,然後將查詢結果用html 的形式顯示出來的經歷吧。通常我們是這麼做的 以下為引用的內容 create connection recordset populate data into recordset object do while not rs.eof r...

用GetString來提高ASP的速度

許多asp程式設計師都有過執行資料庫查詢,然後將查詢結果用html 的形式顯示出來的經 曆吧.通常我們是這麼做的 create connection recordset populate data into recordset object do while not rs.eof rs field1...