PC6下载站

分类分类

用GetString来提高ASP的速度 

关注+2004-11-07作者:蓝点

许多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 >放在它的后面. 这是因为我们的格式化字符串中并不含有这些表格 头尾所需的字符串.)



Charles Carroll的文章:http://www.learnasp.com/learn/dbgetstring.asp讲述了如 何用GetString来生成一个SELECT box. 我想对你们也是很有帮助的。




展开全部

相关文章

更多+相同厂商

热门推荐

  • 最新排行
  • 最热排行
  • 评分最高
排行榜

    点击查看更多

      点击查看更多

        点击查看更多

        说两句网友评论

          我要评论...
          取消