欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ADO初学者教程:ADO 通过GetString()加速脚本

程序员文章站 2022-05-23 22:49:02
请使用getstring()方法来加速您的asp脚本(来代替多行的response.write)。 实例 使用 getst...

请使用getstring()方法来加速您的asp脚本(来代替多行的response.write)。


实例

使用 getstring()
如何使用getstring()在html表格中显示记录集中的数据。

多行response.write

下面的例子演示了在html表格中显示查询的一种方法:

<html>
<body>
<%
set conn=server.createobject("adodb.connection")
conn.provider="microsoft.jet.oledb.4.0"
conn.open "c:/webdata/northwind.mdb"
set rs = server.createobject("adodb.recordset")
rs.open "select companyname, contactname from customers", conn
%>
<table border="1" width="100%">
<%do until rs.eof%>
   <tr>
      <td><%response.write(rs.fields("companyname"))%></td>
      <td><%response.write(rs.fields("contactname"))%></td>
   </tr>
<%rs.movenext
loop%>
</table>
<%
rs.close
conn.close
set rs = nothing
set conn = nothing
%>
</body>
</html>

对于一个大型的查询来说,这样做会增加脚本的处理时间,这是由于服务器需要处理大量的response.write命令。

解决的办法是创建全部字符串,从<table>到</table>,然后将其输出 - 只使用一次response.write。


getstring() 方法

getstring()方法使我们有能力仅使用一次response.write,就可以显示所有的字符串。同时它甚至不需要do..loop代码以及条件测试来检查记录集是否处于eof。

语法

str = rs.getstring(format,rows,coldel,rowdel,nullexpr) 

如需使用来自记录集的数据创建一个html表格,我们仅仅需要使用以上参数中的三个(所有的参数都是可选的):

  • coldel - 用作列分隔符的html
  • rowdel - 用作行分隔符的html
  • nullexpr - 当列为空时所使用的html

注释:the getstring()方法是ado 2.0的特性。您可从下面的地址下载ado 2.0:

在下面的例子中,我们将使用getstring()方法,把记录集存为一个字符串:

<html>
<body>
<%
set conn=server.createobject("adodb.connection")
conn.provider="microsoft.jet.oledb.4.0"
conn.open "c:/webdata/northwind.mdb"
set rs = server.createobject("adodb.recordset")
rs.open "select companyname, contactname from customers", conn
str=rs.getstring(,,"</td><td>","</td></tr><tr><td>","&nbsp;")
%>
<table border="1" width="100%">
  <tr>
    <td><%response.write(str)%></td>
  </tr>
</table>
<%
rs.close
conn.close
set rs = nothing
set conn = nothing
%>
</body>
</html>

上面的变量str包含着由select语句返回的所有列和行的一个字符串。在每列之间会出现</td><td>,在每行之间会出现</td></tr><tr><td>。这样,仅使用一次response.write,我们就得到了需要的html。