- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RecordCount属性返回指示Recordset中记录数目的Long值。用.doc
RecordCount 属性返回指示 Recordset 中记录数目的 Long 值。用 RecordCount 属性可查找 Recordset 对象中的记录数目。如果 ADO 无法确定记录数目或者提供者或游标类型不支持 RecordCount,则该属性返回 -1。读取已关闭的 Recordset 的 RecordCount 属性将产生错误。
Recordset 属性取决于提供者的功能和游标类型。对于仅向前游标,RecordCount 属性将返回 -1;对于静态或键集游标,将返回实际计数;而对于动态游标,则返回 -1 或实际计数,这取决于数据源。
在检验数据中介绍的范例 Recordset 由于仅向前游标被打开将返回 –1。为了使用 RecordCount 属性,您需要利用更先进的游标(静态或键集)打开 Recordset。
在某些情况下,您的提供者或游标在首先从数据源提取所有的记录之前无法提供 RecordCount 值。若要强制执行这种类型的记录提取,请在调用 RecordCount 之前调用 Recordset 的 MoveLast 方法。
以上是ADO官方手册的描述
对记录集计数有以下几个方法
1.直接读取recordcount
m_Record-Open(_T(SQL命令), _variant_t((IDispatch *)m_Connection, true),
adOpenStatic, adLockReadOnly, adCmdText);
int n = m_Record-RecordCount; //得到记录条数
2.遍历
3.先select count(*) as cc from table1,然后再select * from table1
第一种方法,直接读取recordcount,最简单,但是有前提,游标位置要事先指定为客户端游标,游标类型事先指定为静态游标和Keyset游标,才能够稳定的使用该属性。使用connection-execute的方法得到记录集的游标类型依赖于数据库和,connection自身的游标位置属性,有时候返回的是只读向前的游标类型,这里取得的记录集recordcount属性是-1,所以一旦要使用这种方法,请在获取记录集的时候使用recordset的open方法,并事先明确指定游标位置,和游标类类型
第二种方法,遍历,遍历的方法,可以使用movenext来遍历计数,但目前很多人封装的ADO类获取记录集的方式是从connection-execute得到,得到的记录集可能是只读向前的游标,在遍历的时候是不可以使用movefirst,movelast,move等方法,只能使用movenext方法,所以要想使用所有的move方法,就必须使用明确的游标类型的记录集来open而不是从execute中得到。所以目前见到的多数ADO封装类经常在这里出现异常。大家使用的时候必须要进行相应的修改
第三种方法,是兼容性比较好,不需要考虑游标类型不确定的因素。但是代码量稍多
游标中只读向前的游标是最快的,性能最好的,但如果想在movenext遍历记录集之前获取记录数就必须采用第三种方法。
服务端游标和客户端游标到底谁的性能快,取决于需求和系统实际的情况,以及数据库驱动对游标的支持程度。
以下来自官方手册,大家可以自行体会
游标位置的重要性
每个游标都使用临时资源来持有其数据。这些资源可以是内存、磁盘分页文件、临时磁盘文件,甚至是数据库中的临时存储区。当这些资源位于客户端计算机上时,游标称为“客户端”游标。当这些资源位于服务器上时,游标称为“服务器端”游标。
客户端游标
在 ADO 中,通过使用 adUseClient CursorLocationEnum 来调用客户端游标。利用非键集的客户端游标,服务器将整个结果集通过网络发送给客户端计算机。客户端计算机提供并管理游标和结果集所需要的临时资源。客户端应用程序可以浏览整个结果集,以确定它需要哪些行。
如果静态的和键集驱动的客户端游标包括的行数太多,那么,这些游标可能给工作站带来较沉重的负载。由于所有游标库都能够生成包含数千行的游标,所以,为获取大量行集而设计的应用程序有可能性能不佳。当然,也会有例外。对于某些应用程序来说,大型客户端游标可能完美好用,并且性能可能不成问题。
客户端游标的一个显然的好处是快速响应能力。结果集已下载到客户端计算机之后,浏览所有行的速度会非常快。一般来说,如果使用客户端游标,应用程序的可伸缩性更好,这是因为游标对资源的需求由每个单独的客户端而不是服务器来解决。
服务器端游标
在 ADO 中,通过使用 adUseServer CursorLocationEnum 来调用服务器端游标。通过服务器端游标,服务器使用由服务器计算机所提供的资
您可能关注的文档
- Java理论与实践伪typedef反模式.doc
- k3V12.1车间作业管理培训.ppt.ppt
- Knovel操作说明HowtoKnovelizeourKnovel.ppt
- Les01-基本sql语句.ppt.ppt
- Les10-创建和管理表.ppt.ppt
- lightscapedos下渲染-ABBS建筑论坛.doc
- Linux作DHCP服务器之三3.dhcpd.leasesdhcpd.leases是DHCP客户.doc
- LOGOSCREEN500彩色无纸记录仪.ppt
- Logo子查询和集合操作-Read.ppt
- M5-2教学信息化-江苏省启东中等专业学校.doc
- 5.3.1函数的单调性(教学课件)--高中数学人教A版(2019)选择性必修第二册.pptx
- 部编版道德与法治2024三年级上册 《科技提升国力》PPT课件.pptx
- 2.7.2 抛物线的几何性质(教学课件)-高中数学人教B版(2019)选择性必修第一册.pptx
- 人教部编统编版小学六年级上册道德与法治9 知法守法 依法维权(第一课时)课件.pptx
- 三年级上册品德道德与法治《学习伴我成长》.pptx
- 部编版小学道德与法治六年级上册6 人大代表为人民 课件.pptx
- 部编版小学道德与法治六年级上册1感受生活中的法律第一课时课件.pptx
- 2.5.2圆与圆的位置关系(教学课件)-高中数学人教A版(2019)选择性必修第一册.pptx
- 2.5.1直线与圆的位置关系-(教学课件)--高中数学人教A版(2019)选择性必修第一册.pptx
- 14.1.1 同底数幂的乘法(教学课件)-初中数学人教版八年级上册.pptx
文档评论(0)