ASP的NextRecordset和GetRows方法

NextRecordset和GetRows是RecordSet的两个属性对提高批量查询速度很有效果,大家可能用的很少,分享一下这两个方法的用法:

GetRows方法:将RecordSet记录集提取到一个二维数组中,我们对RecordSet数据的行为就转移到该数组,可以早早的断开纪录集,不用再使用源数据操作,rs.movnext, while not rs.eof等可以省掉。

NextRecordset方法:一次提交多个查询,形成多个RecordSet结果集的情况下,提供一个离开当前工作的RecordSet,转移到下一个RecordSet的方法。主要是用在多个select形成的结果集的情况。示例如下:

查询记录

set rs=conn.execute(“select Ca1,Ca2,Ca3,Ca4 from TableA select Cb1,Cb2,Cb3,Cb4,Cb5 from TableB”)

‘执行后将产生两个select的结果集,当前第一个select的RecordSet处于激活状态。

arrA=rs.GetRows’取得第一个查询结果的二维数组

set rs=rs.NextRecordset‘激活下一个RecordSet

arrB=rs.GetRows’取得第二个查询结果的二维数组

set rs=nothing‘释放数据库对象

这样,我们所有关于数据库的数据提取完成,用最早的时间释放数据库资源。

注意,GetRows方法得到的数组,第一维代表列,第二维代表行。

For i=0 to UBound(arrA,2)

response.write(“<tr>”)

response.write(“<td>字段1:”&arrA(i,0)&“</td>”)

response.write(“<td>字段2:”&arrA(i,1)&“</td>”)

response.write(“<td>字段3:”&arrA(i,2)&“</td>”)

response.write(“<td>字段4:”&arrA(i,3)&“</td>”)

response.write(“</tr>”)

Next

response.write(“</table>”)

’第二个select表循环

response.write(“<p>表二:</p><table>”)

For i=0 to UBound(arrB,2)

response.write(“<tr>”)

response.write(“<td>字段1:”&arrB(i,0)&“</td>”)

response.write(“<td>字段2:”&arrB(i,1)&“</td>”)

response.write(“<td>字段3:”&arrB(i,2)&“</td>”)

response.write(“<td>字段4:”&arrB(i,3)&“</td>”)

response.write(“<td>字段5:”&arrB(i,4)&“</td>”)

response.write(“</tr>”)

Next

response.write(“</table>”)

优点:

1、使用NextRecordSet,可以处理多个select语句一次发送形成的结果集,减少网络流量,必定加快速度!

2、使用GetRows将记录集提取到数组中(内存操作,因此记录集不能太大)用内存的数组工作,而且省掉eof、MoveNext等判断,速度更快!

3、最最主要的,我们利用上二者,一次性将所有的数据提完,快速断开数据库连接和销毁建立的RecordSet数据库对象,大大减少网络流量!性能自然要提高很多!

文章来源:http://www.joyiu.com/article.asp?id=56

时间: 2024-07-29 07:38:09

ASP的NextRecordset和GetRows方法的相关文章

ASP在JScript中使用RecordSet对象的GetRows方法

js|jscript|对象 写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript.但在用JScript作为ASP的语言时,比用VBScript有一些小小的不方便,比如RecordSet的GetRows方法. 在ASP中操作数据库,一般都要用到RecordSet对象,如果注重程序效率的话,可能就会用到RecordSet对象的GetRows方法,把记录集对象转换成数组,而操作数组在速度上将比用RecordSet对象的MoveNext方法快很多,而且可以在

在JS中使用RecordSet对象的GetRows方法

js|对象 写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript.但在用JScript作为ASP的语言时,比用VBScript有一些小小的不方便,比如RecordSet的GetRows方法. 在ASP中操作数据库,一般都要用到RecordSet对象,如果注重程序效率的话,可能就会用到RecordSet对象的GetRows方法,把记录集对象转换成数组,而操作数组在速度上将比用RecordSet对象的MoveNext方法快很多,而且可以在取出数组后尽早释

NextRecordset 和 GetRows 双簧合奏~~

NextRecordset 和 GetRows 大家可能用的很少!最近使用使用,不错的好东东!对提高批量查询,查询纪录集不是巨海量的情况很有效果NextRecordset 和 GetRows 是Recordset的两个属性(属性还是方法我是常混淆是非#$#$,弄不清四下五除一) GetRows ---> 将recordset记录集提取到一个二维数组中,我们对recordset数据的行为就转移到该数组,可以早早的断开纪录集,不用再使用元数据操作,rs.movnext, while not rs.e

NextRecordset 和 GetRows 双簧合奏_应用技巧

NextRecordset 和 GetRows 大家可能用的很少! 最近使用使用,不错的好东东! 对提高批量查询,查询纪录集不是巨海量的情况很有效果 NextRecordset 和 GetRows 是Recordset的两个属性(属性还是方法我是常混淆是非#$#$,弄不清四下五除一) GetRows ---> 将recordset记录集提取到一个二维数组中,我们对recordset数据的行为就转移到该数组,可以早早的断开纪录集,不用再使用元数据操作,rs.movnext, while not r

ASP随机生成汉字的方法

ASP随机生成汉字的方法 <%Dim i     Dim j     Dim HS     Dim HE     Dim LS     Dim LE     dim Result     Result=""     HS = 177     HE = 247     LS = 161     LE = 254     dim Max_Num     Max_num=65536     Randomize       For i = 1 To 4 temp1=dec2bin(Int

用ASP连接各种数据库的方法集锦

数据|数据库 一.ASP的对象存取数据库方法 在ASP中,用来存取数据库的对象统称ADO(Active Data Objects),主要含有三种对象:Connection.Recordset .Command Connection:负责打开或连接数据 Recordset:负责存取数据表 Command:负责对数据库执行行动查询命令 二.连接各数据库的驱动程序 连接各数据库可以使用驱动程序,也可以使用数据源,不过我建议大家使用驱动程序,因为使用驱动程序非常方便.简单,而使用数据源比较麻烦. ODB

ASP漏洞分析和解决方法

解决 ASP漏洞分析和解决方法 有人说一台不和外面联系的电脑是最安全的电脑,一个关闭所有端口,不提供任何服务的电脑也是最安全的.黑客经常利用我 们所开放的端口实施攻击,这些攻击最常见的是DDOS(拒绝服务攻击).下面我会列出ASP的二十几个漏洞,每个漏洞都会有漏洞描 述和解决方法. 1 在ASP程序后加个特殊符号,能看到ASP源程序 受影响的版本: win95+pws IIS3.0 98+pws4 不存在这个漏洞. IIS4.0以上的版本也不存在这个漏洞. 问题描述: 这些特殊符号包括小数点,%

ASP 插入数据, 换行问题解决方法

插入|解决|数据|问题 作用:当插入数据时, 把每行的回车符替换为 <br /> 方法, 只使用简单的 replace 方法-- content_ = replace(request.Form("content"),chr(13),"<br/>") 如使用函数, 可这样使用-- content_ = funcName(request.Form("content")) 文件: insertform.asp--插入数据表单页,

ASP连接数据库的11种方法及相关语法

连接数据库|语法 编辑注:学会了这些东西,您将基本可以独立完成ASP对数据库的所有操作. ASP连接数据库的11种方法--本文总结了使用ASP链接各种数据库的方法: 1.Access数据库的DSN-less连接方法: set adocon=Server.Createobject("adodb.connection") adoconn.Open"Driver={Microsoft Access Driver(*.mdb)};DBQ="& _ Server.Ma