繁体中文
设为首页
加入收藏
当前位置:ASP技术首页 >> ASP基础 >> 从外国的一个网站上找一个(用GetString来提高ASP的速度)我测试过了呀,是快了很多呀

从外国的一个网站上找一个(用GetString来提高ASP的速度)我测试过了呀,是快了很多呀

2006-06-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:许多ASP程序员都有过执行数据库查询,然后将查询结果用HTML表格的形式显示出 来的经 历吧. 通常我们是这么做的: < % “Create connection / recordset “Populate data into recordset object % > < TABLE > < % ...

许多ASP程序员都有过执行数据库查询,然后将查询结果用HTML表格的形式显示出

来的经

历吧. 通常我们是这么做的:

< %

“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语句,速度就会

快得多

. 微软公司里的一些能干的家伙已经将想法变成了现实. (注意,这是一个ADO 2.

0才有

的特性. 如果你还在使用ADO 1.5话,可以在

http://www.microsoft.com/data/download.htm免费下载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

表格的

例子里所看到的那样,每列用< 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便可以输出数据集中的所有记录. 让我们来看个简

单的例

子,假设我们的查询结果返回了以下的行和列:

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 >放在它的后面. 这是因为我们的格式化字符串中并不含有这

些表格

头尾所需的字符串.)

责任编辑:admin
相关文章