仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 560|回复: 9
打印 上一主题 下一主题

[学习教程] ASP网页设计NextRecordset 和 GetRows 双鐄独奏~~

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 23:20:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Access是一种桌面数据库,只适合数据量少的应用,在处理少量数据和单机访问的数据库时是很好的,效率也很高。但是它的同时访问客户端不能多于4个。access数据库有一定的极限,如果数据达到100M左右,很容易造成服务器iis假死,或者消耗掉服务器的内存导致服务器崩溃。NextRecordset和GetRows人人大概用的很少!
比来利用利用,不错的好东东!
对进步批量查询,查询记录集不是巨海量的情形很无效果
NextRecordset和GetRows是Recordset的两个属性(属性仍是办法我是常搅浑长短#$#$,弄不清四下五除一)

GetRows--->将recordset纪录集提取到一个二维数组中,我们对recordset数据的举动就转移到该数组,能够早早的断开记录集,不必再利用元数据操纵,rs.movnext,whilenotrs.eof等能够免却

NextRecordset---->就是在一次提交多个查询,构成多个reordset了局集的情形下,供应一个分开以后事情的recordset,转移到第二个recordset的办法!
次要是用在多个SELECT构成的了局集的情形

示比方下:

dimSQL,Rs,arrA,arrB,rowsA,rowsB

======提取数据库库纪录====

(adodb.connection的毗连部分省略,假定CONN.openCONNstr)
SQL="selectCa1,Ca2,Ca3,Ca4fromTableA"---------------SELECTa
SQL=SQL&"selectCb1,Cb2,Cb3,Cb4,Cb5fromTableB"-------------SELECTb

SetRs=conn.execute(SQL)
实行了局将有两个select的了局集,以后第一个select的recordset处于激活形态

arrA=rs.GetRows----------获得SElECTaRecordset的二维数组

setrs=rs.NextRecordset
------------最关头的一步,利用Nextrecordset激活下一个recordset

arrB=rs.GetRows----------再次获得第二个SElECTbRecordset的二维数组

Rs.close
setrs=nothing---------尽早开释数据库工具,封闭纪录集
CONN.close
setCONN=Nothing
如许,我们一切关于数据库的数据干洁净净的提取完成,用最早的工夫开释数据库资本
-----------//

========用获得的arrAarrB举行页面处置,显现数据了局======
注重,arrA=GetRows后失掉的数组,第一维是代表列,第二维代表行

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

做数据轮回:

第一个select表的轮回
response.write"<table>"
Fori=0torowsA
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>"
Fori=0torowsB
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="selectCa1,Ca2,Ca3,Ca4FromTableA"
setRs=CONN.execute(SQL)
SQL="selectCb1,Cb2,Cb3,Cb4,Cb5fromTableB"
SetRs=CONN.execute(SQL)
(2)利用GetRows将纪录集提取到数组中(放到内存,以是请求纪录集不要海年夜啦)
用内存的数组事情,并且免却EOF,movenext等的判别,谁更快!自不用说!
(3)最最次要的,我们使用上两者,一次性将一切的数据提完,疾速断开数据库毗连和摧毁创建recordset数据库工具,年夜年夜削减收集流量!功能天然要进步良多!

-----------呵呵!实时原创,初浅晦色,包涵包涵~~~~~~~V37


</p>因为现在数据库都使用标准的SQL语言对数据库进行管理,所以如果是标准SQL语言,两者基本上都可以通用的。SQLServer还有更多的扩展,可以用存储过程,数据库大小无极限限制。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-20 09:31:38 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
老尸 该用户已被删除
板凳
发表于 2015-1-24 15:42:42 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
分手快乐 该用户已被删除
地板
发表于 2015-1-25 22:23:25 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
再现理想 该用户已被删除
5#
发表于 2015-1-31 20:12:09 | 只看该作者
最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。
变相怪杰 该用户已被删除
6#
发表于 2015-2-6 22:05:03 | 只看该作者
如何更好的使自己的东西看上去很不错等等。其实这些都不是问题的实质,我们可以在实践中不断提升自己,不断充实自己。
再见西城 该用户已被删除
7#
发表于 2015-2-18 22:09:54 | 只看该作者
完全不知道到底自己学的是什么。最后,除了教程里面说的几个例子,还是什么都不会。
兰色精灵 该用户已被删除
8#
发表于 2015-3-6 11:13:34 | 只看该作者
跟学别的语言一样,先掌握变量,流程控制语句(就是ifwhileselect)等,函数/过程,数组
透明 该用户已被删除
9#
发表于 2015-3-13 00:08:39 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
小妖女 该用户已被删除
10#
发表于 2015-3-20 06:44:48 | 只看该作者
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 09:42

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表