- 2013-12-11消息称,诺基亚Normandy和Asha一样,主打低端市场,将...
- 2013-12-10雷军微博披露小米“魔方”项目
- 2013-12-1012306购票首度接入支付宝 支付时间可以快至5秒
- 2013-12-10中国移动官网显示周四接受iPhone 5s预订
- 2013-12-0912306 App研发故事:变成开放系统 社会人员助力
- 2013-10-15天猫“双十一”今年打通线上线下:实体店参与。
- 2013-10-15根据专利显示iPhone将有防摔功能。
- 2013-10-12百度或可全面收购人人网,传闻四起!
- 2013-10-07生物密码时代何时到来?尚存隐私泄露隐忧
- 2013-09-29国务院近日印发了上海自由贸易试验区总体方案,自贸区...
ASP的NextRecordset和GetRows方法
发表于:2013-09-05|
次阅读|
作者:藕码网
摘要:NextRecordset和GetRows是RecordSet的两个属性对提高批量查询速度很有效果,大家可能用的很少,分享一下这两个方法的用法:
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数据库对象,大大减少网络流量!性能自然要提高很多!
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数据库对象,大大减少网络流量!性能自然要提高很多!
注:本站部分信息可能源于互联网分享,如有侵权,请告知,我们将及时删除!
上一篇:改mdb为asp所带来的灾难 下一篇:ASP使用MYSQL数据库全攻略
- 用户评论
- 相关文章
-
最新评论
-
暂无关联文章
推荐文章
-
1
bash_profile和.bashr...
详细介绍bash_profile和.bashrc之间的区别。... -
2
awstats的安装简易指南...
介绍awstats的安装使用,使其能快速部署。 -
3
分布式监控系统gangli...
详细介绍ganglia配置过程 -
4
使用IIS+Resin来配置J...
本文介绍使用IIS+Resin来配置JSP的运行环境... -
5
MYSQL的主要参数设置(...
MYSQL的主要参数设置(优化) -
6
Linux服务器安全小技巧...
Linux 服务器安全小技巧
热门文章榜