您的位置:首页技术开发ASP技巧 → 用GetString来提高ASP的速度 

用GetString来提高ASP的速度 

时间:2004/11/7 4:11:00来源:本站整理作者:蓝点我要评论(0)

许多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. 我想对你们也是很有帮助的。




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 VB.NET 2005编写定时关 Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速

人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案