RecordSet对象的GetString方法

一、前言

许多ASP程序员都有过执行数据库查询,然后将查询结果用HTML表格的形式显示出来的经历吧。 通常我们是这么做的:

<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以上才有的特性,如果你还在使用以前版本的话,请升级到最新版)

二、GetString方法参数

有了GetString方法,我们就可以仅用一个Response.Write来显示所有的输出了,它就象是能判断Recordset是否为EOF的DO ... LOOP循环。

GetString的用法如下(所有的参数都是可选的):

String = recordset.GetString(StringFormat, NumRows, ColumnDelimiter,RowDelimiter, NullExpr)

要从Recordset的结果里生成HTML表格,我们只需关心GetString的5个后面3个参数:

StringFormat:指定 Recordset 应转换为下列格式
NumRows:记录集要转换的行数。如果没有指定或者它大于记录集的总行数,则记录集的所有行都要转换
ColumnDelimiter:分隔记录集的列的HTML代码
RowDelimiter:分隔记录集的行的HTML代码
NullExpr:当前记录为空时应生成的HTML代码

三、应用举例

原代码(数据库两个字段三条记录):

<%
Set RS = conn.Execute("Select * FROM test")
tdSuffix = "</TD><TD>"
trPrefix = "<TR><TD>"
trSuffix = "</TD></TR>"
opts = RS.GetString( , , tdSuffix, trSuffix & trPrefix, "--error--" )
opts = Left( opts, Len(opts)-Len(trPrefix) )  'This line is the key to it!
Response.Write "<TABLE Border=1 CellPadding=5>
Response.Write trPrefix & opts
Response.Write "</TABLE>
%>

执行结果为:

<TABLE Border=1 CellPadding=5>
<TR>
<TD>row1, field1 value</TD>
<TD>row1, field2 value</TD>
</TR>
<TR>
<TD>row2, field1 value</TD>
<TD>row2, field2 value</TD>
</TR>
<TR>
<TD>row3, field1 value</TD>
<TD>row3, field2 value</TD>
</TR>
</TABLE>

上一篇: 让页面内容水平居中
下一篇: setTimeout 和 setInterval 的区别
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 1 | 引用: 0 | 查看次数: 4968
发表评论
登录后再发表评论!