- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RecordCount计数,recordcount,rs.recordcount,asprs.recordcount,vbrs.recordcount,recordcount属性,recordset.count,计数函数countif,countstar细胞计数仪,计数函数count
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 来调用服务器端游标。通过服务器端游标,服务器使用由服务器计算机所提供的资
您可能关注的文档
最近下载
- NB∕T 47010-2017 承压设备用不锈钢和耐热钢锻件(高清版).pdf VIP
- 车辆风险预警方法、路侧控制单元及风险预警控制系统.pdf VIP
- 2025年版《中文核心期刊要目总览》.docx VIP
- 密码学基础-密码学.ppt VIP
- 中国国家标准 GB/T 4706.1-2024家用和类似用途电器的安全 第1部分:通用要求.pdf
- 灯具安装技术交底1.docx VIP
- 乙烯三机:发展与未来.pptx VIP
- NB/T 47008-2017 承压设备用碳素钢和合金钢锻件.pdf VIP
- 密钥管理与密钥分配现代密码学.ppt VIP
- 初中信息技术校本课程《遨游3D世界,利用三维设计软件制作创意作品》教案.doc VIP
文档评论(0)