技巧 用GetString來提高ASP的速度

2021-04-22 17:04:06 字數 2241 閱讀 8290

許多asp程式設計師都有過執行資料庫查詢,然後將查詢結果用html**的形式顯示出來的經歷吧。通常我們是這麼做的:

以下為引用的內容:

<%

'create connection / recordset

'populate data into recordset object

%>

<% do while not rs.eof %>

<%=rs("field1")% >

<%=rs("field2")% >

. <% rs.movenext

loop %>

如果查詢結果很多,伺服器解釋你的asp script將花費大量的時間,因為有許多的response.write語句要處理. 如果你將輸出的全部結果放在乙個很長的字串裡(從到),那麼伺服器只需解釋一遍response.write語句,速度就會快得多 . 微軟公司裡的一些能幹的傢伙已經將想法變成了現實. (注意,這是乙個ado 2.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**的例子裡所看到的那樣,每列用...分隔,每行用...分隔。來看看例子的**吧。

以下為引用的內容:

<%@ language="vbscript" %>

<% option explicit 'good coding technique

'establish connection to db

dim conn

set conn = server.createobject("adodb.connection")

conn.open "dsn=northwind;"

'create a recordset

dim rs

set rs = server.createobject("adodb.recordset")

rs.open "select * from table1", conn

'store our one big string

dim strtable

strtable = rs.getstring(,,"",""

," ")

%>

<% response.write(strtable) %>

<%

'cleanup!

rs.close

set rs = nothing

conn.close

set conn = nothing

%>

strtable字串用於存放我們從"select * from table1"結果生成的html**的**。

html**的每列之間都將有的html**,每行之間的html**是. getstring方法將輸出正確的html**並存放在strtable中,這樣我們只需一行response.write便可以輸出資料集中的所有記 錄. 讓我們來看個簡單的例 子,假設我們的查詢結果返回了以下的行和列:

以下為引用的內容:

col1 col2 col3

row1 bob smith 40

row1 ed frank 43

row1 sue void 42

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

以下為引用的內容:

bobsmith40<

td >ed ...

說實話,這個字串看上去冗長而雜亂,但它就是我們想要的html**。(注意看,我們在 手工書寫的html**中,將放在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...

用GetString提高ASP的速度

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