影音先锋男人资源av站_狠狠色综合激情丁香五月_爱爱爱爱看视频_在线播放免费人成视频在线观看_少妇人妻综合久久中文字幕_国产午夜无码精品免费看_久久久久久夜精品精品免费啦_男人女人午夜视频免费_日本xxxx裸体xxxx_丰满人妻熟妇乱又仑精品

電子科大論壇-非清水河畔

 找回密碼
 注冊(開放注冊)
查看: 7475|回復: 0
打印 上一主題 下一主題

[軟件] 用GetString來提高ASP的速度

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2007-12-1 14:53:22 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
許多ASP程序員都有過執(zhí)行數(shù)據(jù)庫查詢,然后將查詢結果用HTML表格的形式顯示出來的經(jīng) 歷吧. 通常我們是這么做的:
<%
'Create connection / recordset
'Populate data into recordset object
%>
<TABLE>
<% Do While not rs.EOF %>
<TR>
<TD ><%=rs("Field1")% ></TD>
<TD ><%=rs("Field2")% ></TD>
.
</TR>
<% rs.MoveNext
Loop %>
</TABLE>
如果查詢結果很多,服務器解釋你的ASP script將花費大量的時間,因為有許多的
Response.Write語句要處理. 如果你將輸出的全部結果放在一個很長的字符串里(從<TABLE >到</TABLE >),那么服務器只需解釋一遍Response.Write語句,速度就會快得多 . 微軟公司里的一些能干的家伙已經(jīng)將想法變成了現(xiàn)實. (注意,這是一個ADO 2.0以上才有 的特性. 如果你還在使用以前版本的話,請升級到最新版)
有了GetString方法,我們就可以僅用一個Response.Write來顯示所有的輸出了,它就象 是能判斷Recordset是否為EOF的DO ... LOOP循環(huán).
GetString的用法如下(所有的參數(shù)都是可選的):
String = recordset.GetString(StringFormat, NumRows, ColumnDelimiter, RowDelimiter, NullExpr)
要從Recordset的結果里生成HTML表格,我們只需關心GetString的5個參數(shù)中的3個:
ColumnDelimiter(分隔記錄集的列的HTML代碼),RowDelimiter(分隔記錄集的行的HTML 代碼),和NullExpr(當前記錄為空時應生成的HTML代碼). 就象你在下面生成HTML表格的 例子里所看到的那樣,每列用<TD >...</TD >分隔,每行用<TR >...</TR >分隔. 來 看看例子的代碼吧.
<%@ 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(,,"</td ><td >","</td ></tr ><tr ><td >"
," ")
%>
<HTML>
<BODY>
<TABLE>
<TR ><TD>
<% Response.Write(strTable) %>
</TR ></TD>
</TABLE>
</BODY>
</HTML>
<%
'Cleanup!
rs.Close
Set rs = Nothing
conn.Close
Set conn = Nothing
%>
strTable字符串用于存放我們從"SELECT * FROM table1"結果生成的HTML表格的代碼.
HTML表格的每列之間都將有</td ><td >的HTML代碼,每行之間的HTML代碼是</td ></td ><tr ><td >. GetString方法將輸出正確的HTML代碼并存放在strTable中,這樣我們只需一行Response.Write便可以輸出數(shù)據(jù)集中的所有記錄. 讓我們來看個簡單的例 子,假設我們的查詢結果返回了以下的行和列:
Col1 Col2 Col3
Row1 Bob Smith 40
Row1 Ed Frank 43
Row1 Sue Void 42
那么GetString語句返回的字符串將是:
Bob</td ><td >Smith</td ><td >40</td ><td ></td ></tr ><tr ><
td
>Ed ...
說實話,這個字符串看上去冗長而雜亂,但它就是我們想要的HTML代碼. (注意看,
我們在 手工書寫的HTML代碼中,將<TABLE ><TR ><TD >放在Response.Write的前面,將</TD ></TR ></TABLE >放在它的后面. 這是因為我們的格式化字符串中并不含有這些表格 頭尾所需的字符串.

來源于北京教育招生網(wǎng)
您需要登錄后才可以回帖 登錄 | 注冊(開放注冊)

本版積分規(guī)則

手機訪問本頁請
掃描左邊二維碼
本網(wǎng)站聲明
本網(wǎng)站所有內容為網(wǎng)友上傳,若存在版權問題或是相關責任請聯(lián)系站長!
站長電話:0898-66661599    站長聯(lián)系QQ:12726567   
站長微信:hainanok
請掃描右邊二維碼
www.myujob.com

小黑屋|手機版|Archiver|電子科大論壇-非清水河畔 ( 瓊ICP備10001196號-2 )

GMT+8, 2025-11-6 22:26 , Processed in 0.078411 second(s), 14 queries .

Powered by 校園招聘信息

© 2001-2020 電子科大論壇-非清水河畔校園招聘

快速回復 返回頂部 返回列表