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

NextRecordset 和 GetRows 大家可能用的很少!
最近使用使用,不错的好东东!
对提高批量查询,查询纪录集不是巨海量的情况很有效果
NextRecordset 和 GetRows 是Recordset的两个属性(属性还是方法我是常混淆是非#$#$,弄不清四下五除一)

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

NextRecordset ----> 就是在一次提交多个查询,形成多个reordset结果集的情况下,提供一个离开当前工作的recordset,转移到第二个recordset的方法!
主要是用在多个SELECT形成的结果集的情况

示例如下:

dim SQL,Rs,arrA,arrB,rowsA,rowsB

''======提取数据库库记录====

(adodb.connection 的连接部分省略,假定CONN.open CONNstr)
SQL=" select Ca1,Ca2,Ca3,Ca4 from TableA " ''---------------SELECTa
SQL=SQL&" select Cb1,Cb2,Cb3,Cb4,Cb5 from TableB " ''-------------SELECTb

Set Rs=conn.execute(SQL) 
''执行结果将有两个select 的结果集,当前第一个select的recordset处于激活状态 

arrA=rs.GetRows ''----------取得SElECTa Recordset的二维数组

set rs=rs.NextRecordset 
''------------最关键的一步,使用Nextrecordset激活下一个recordset

arrB=rs.GetRows ''----------再次取得第二个SElECTb Recordset的二维数组 

Rs.close
set rs=nothing ''---------尽早释放数据库对象,关闭记录集
CONN.close
set CONN=Nothing
这样,我们所有关于数据库的数据干干净净的提取完成,用最早的时间释放数据库资源 
''-----------//

''========用取得的arrA arrB进行页面处理,显示数据结果======
''注意,arrA=GetRows 后得到的数组,第一维是代表列,第二维代表行

rowsA=ubound(arrA,2) ''----提取arrA的第二维下标,相当于取得recordset 的记录行数
rowsB=ubound(arrB,2) ''-----同上,提取arrB的第二维下标 

''做数据循环:

''第一个select表的循环
response.write "<table>"
For i=0 to rowsA
response.write "<tr>
response.write "<td>"&arrA(i,0)&"</td>" ''tableA.Ca1 
response.write "<td>"&arrA(i,1)&"</td>" ''tableA.Ca2 
response.write "<td>"&arrA(i,2)&"</td>" ''tableA.Ca3 
response.write "<td>"&arrA(i,3)&"</td>" ''tableA.Ca4 
response.write "</tr>"
Next
response.write "</table>

''第二个select表循环
response.write "<table>"
For i=0 to rowsB
response.write "<tr>
response.write "<td>"&arrB(i,0)&"</td>" ''tableB.Cb1 
response.write "<td>"&arrB(i,1)&"</td>" ''tableB.Cb2 
response.write "<td>"&arrB(i,2)&"</td>" ''tableB.Cb3 
response.write "<td>"&arrB(i,3)&"</td>" ''tableB.Cb4 
response.write "<td>"&arrB(i,4)&"</td>" ''tableB.Cb5 
response.write "</tr>"
Next
response.write "</table>

''--------OVER

REM ''============小结========

这样的结果,再清楚不过!
(1)使用Nextrecordset,可以处理多个select语句一次发送形成的结果集,减少网络流量,必定加快速度!
不使用NextRecordset 则会这样操作:
SQL="select Ca1,Ca2,Ca3, Ca4 From TableA "
set Rs=CONN.execute (SQL)
SQL=" select Cb1,Cb2,Cb3,Cb4,Cb5 from TableB "
Set Rs=CONN.execute (SQL)
(2)使用GetRows将记录集提取到数组中(放到内存,所以要求记录集不要海大啦)
用内存的数组工作,而且省掉EOF,movenext等的判断,谁更快!自不必说!
(3)最最主要的,我们利用上二者,一次性将所有的数据提完,快速断开数据库连接和摧毁建立recordset数据库对象,大大减少网络流量!性能自然要提高很多!

时间: 2024-09-17 03:33:13

NextRecordset 和 GetRows 双簧合奏_应用技巧的相关文章

NextRecordset 和 GetRows 双簧合奏~~

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

ASP的NextRecordset和GetRows方法

NextRecordset和GetRows是RecordSet的两个属性对提高批量查询速度很有效果,大家可能用的很少,分享一下这两个方法的用法: GetRows方法:将RecordSet记录集提取到一个二维数组中,我们对RecordSet数据的行为就转移到该数组,可以早早的断开纪录集,不用再使用源数据操作,rs.movnext, while not rs.eof等可以省掉. NextRecordset方法:一次提交多个查询,形成多个RecordSet结果集的情况下,提供一个离开当前工作的Reco

Win 2000下ASP.NET开发环境的配置_实用技巧

Win 2000下ASP.NET的配置 Win 2000(包括Professional,Server和Advanced Server)在默认情况下是不支持ASP.NET的.必须对它进行一个环境的配置. 客户端 SQL Server .NET 数据提供程序 Microsoft 数据访问组件 (MDAC) 2.6 或更高版本 对系统管理信息的访问 Windows Management Instrumentation (WMI)(在 Windows 2000操作系统一起安装)COM+ 服务 Windo

Web开发/设计人员应当知道的15个网站_相关技巧

ColorCombos 开发/设计人员应当知道的15个网站_相关技巧-web前端开发技巧"> 在进行网站设计的时候,开始步骤的其中一项(也是最重要)的内容是选择出一个配色方案. Color Combos让你可以浏览上千个不同的颜色组合,以便从中为你即将开始的设计汲取灵感.其配色方案可按颜色浏览. LIpsum 风靡之至的Lorem Ipsum文字,其大名谁人不知?哪个不晓?(译注:查了才知道,这是指一篇用于测试排版设计的拉丁文文章,从15世纪开始就被广泛使用,文章因以Lorem Ipsum

网站开发防止中文乱码需要了解的codepage的重要性小结_应用技巧

相关的题外话: 一.操作系统window系统内部都是unicode的.文件夹名,文件名等都是unicode的,任何语言系统下都能正常显示. 二.输入法:微软拼音输出的是Unicode的,智能ABC输出是简体中文的(所以智能ABC在非简体中文系统根本不能用,只能打英文). 三.网页的textarea网页的textarea是用unicode显示的.所以往里打什么字都能显示.而一些flash做的输入框就不行了. 四.Access2000access里面保存的数据是unicode的,在任何语言系统下都能

.NET Web开发之.NET MVC框架介绍_实用技巧

MVC概念 MVC是一种架构设计模式,该模式主要应用于图形化用户界面(GUI)应用程序.那么什么是MVC?MVC由三部分组成:Model(模型).View(视图)及Controller(控制器). Model即应用程序的数据模型.任何应用程序都离不开数据,数据可以存储在数据库中.磁盘文件中,甚至内存中.Model就是对这些数据的抽象,不论数据采取何种存储形式,应用程序总是能够通过Model来对数据进行操作,而不必关心数据的存储形式.数据实体类就是常用的一种Model.例如,一个客户管理应用程序使

asp.net下计算数字1至10的总和_实用技巧

复制代码 代码如下: protected void Page_Load(object sender, EventArgs e) { Response.Write(string.Format("数字1~10总和等于{0}.", Sum(1, 10).ToString())); } private int Sum(int min, int max) { int s = 0; for (int i = min; i <= max; i++) { s += i; } return s;

Asp.Net Couchbase Memcached图文安装调用开发_实用技巧

安装服务端 服务端下载地址:http://www.couchbase.com/download 选择适合自己的进行下载安装就可以了,我这里选择的是Win7 64. 在安装服务端如果发生如下所示的错误,我在win7 64安装的过程中就遇到了. 这个时候可以先撤销安装.通过CMD命令运行regedit.展开HKEY_LOCAL_MACHINE\Software\Microsoft\ Windows\ CurrentVersion分支,在窗口的右侧区域找到名为"ProgramFilesDir"

如何轻松搭建Windows8云平台的开发环境_实用技巧

准备工作 在搭建环境前,大家需要在Windows Azure平台注册免费账号,注册完成后,即可获得90天免费使用权限.注册方法请参考:免费试用Windows Azure云平台(无须提供信用卡) 如果你具有微软MSDN Subscription账户,可以根据账户权限申请为期一年的Windows Azure账号.   开发环境_实用技巧-windows实用技巧">   具有Windows Azure账号后,请检查本地机器是否安装了远程桌面应用(Remote Desktop),在随后的文章中,将