ADO初学者教程:ADO 通过GetString()加速脚本
程序员文章站
2023-08-28 21:46:37
请使用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>"," ") %> <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。