ASP应用 用GetString来提高ASP的速度
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
[p][color=#000000]许多asp程序员都有过执行数据库查询,然后将查询结果用html表格的形式显示出来的经历吧。通常我们是这么做的: [/color][/p] [color=#000000]<%[br]'create connection / recordset[br]'populate data into recordset object[br]%>[br]
[p][color=#000000]如果查询结果很多,服务器解释你的asp script将花费大量的时间,因为有许多的[/color][/p] [p][color=#000000]response.write语句要处理. 如果你将输出的全部结果放在一个很长的字符串里(从 [p][color=#000000]有了getstring方法,我们就可以仅用一个response.write来显示所有的输出了,它就象 是能判断recordset是否为eof的do ... loop循环. [/color][/p] [p][color=#000000]getstring的用法如下(所有的参数都是可选的): [/color][/p] [color=#000000]string = recordset.getstring(stringformat, numrows, columndelimiter, rowdelimiter, nullexpr) [/color] [p][color=#000000]要从recordset的结果里生成html表格,我们只需关心getstring的5个参数中的3个: [/color][/p] [p][color=#000000]columndelimiter(分隔记录集的列的html代码),rowdelimiter(分隔记录集的行的html 代码),和nullexpr(当前记录为空时应生成的html代码). 就象你在下面生成html表格的 例子里所看到的那样,每列用 ... | 分隔,每行用[p][color=#000000]<%@ language="vbscript" %>[br]<% option explicit 'good coding technique[br]'establish connection to db[br]dim conn[br]set conn = server.createobject("adodb.connection")[br]conn.open "dsn=northwind;"[br]'create a recordset[br]dim rs[br]set rs = server.createobject("adodb.recordset")[br]rs.open "select * from table1", conn[br]'store our one big string[br]dim strtable[br]strtable = rs.getstring(,," | "," | ||||
"[br]," ")[br]%>[br][br][br]
[p][/p] [p][color=#000000]strtable字符串用于存放我们从"select * from table1"结果生成的html表格的代码. [/color][/p] [p][color=#000000]html表格的每列之间都将有 | 的html代码,每行之间的html代码是 | |||||
. getstring方法将输出正确的html代码并存放在strtable中,这样我们只需一行response.write便可以输出数据集中的所有记录. 让我们来看个简单的例 子,假设我们的查询结果返回了以下的行和列: [/color][/p] [color=#000000]col1 col2 col3[br]row1 bob smith 40[br]row1 ed frank 43[br]row1 sue void 42[/color] [p][color=#000000]那么getstring语句返回的字符串将是: [/color][/p] [color=#000000]bob | smith | 40 | ||||
放在response.write的前面,将 |