ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 8396|回复: 8

再来,返回 ADODB 影响的记录行数。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2003-5-29 13:21 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
对于 Connection 的 Execute 方法影响的行数: Dim lRowsAffected As Long ... oAdoCn.Execute(SQLStatement, lRowsAffected,...) Debug.Print lRowsAffected 此方法只影响数据表中变化了的记录数。 对于 SELECT SQL Statement 影响的行数,还得用 RecordSet.RecordCount

TA的精华主题

TA的得分主题

发表于 2003-5-29 14:56 | 显示全部楼层
用recordset.recordcount时有一些注意事项,最好用recordset.movelast,然后再用recordset.recordcount,这样的话就不会出错了

TA的精华主题

TA的得分主题

发表于 2003-5-29 17:02 | 显示全部楼层
recordset.recordcount如果是-1,则证明recordset的open方法出错。

TA的精华主题

TA的得分主题

发表于 2003-6-6 20:09 | 显示全部楼层
当用到recordset.recordcount时,一定要注意记录集动态的问题

TA的精华主题

TA的得分主题

发表于 2003-6-10 10:21 | 显示全部楼层
是否有recordcount仍然要受到数据提供者的影响,所以,如果你要用ado的通用功能,可以直接用 select count(*) as recordrows from tablename where fieldname='condition' 来做,这样就不会受影响。

TA的精华主题

TA的得分主题

发表于 2003-6-18 18:10 | 显示全部楼层
我的体会是, rec.Open strTable, cnn句中, 用adOpenDynamic的rec.RecordCount=-1, 用adOpenKeyset时就正确,都是动态游标,不知何故?

TA的精华主题

TA的得分主题

发表于 2003-6-18 21:57 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
CursorTypeEnum 指定 Recordset 对象中使用的游标类型。 常量 值 说明 adOpenDynamic 2 使用动态游标。其他用户所作的添加、更改或删除均可见,而且允许 Recordset 中的所有移动类型(如果提供者不支持书签,则书签除外)。 adOpenForwardOnly 0 默认值。使用仅向前游标。除了在记录中只能向前滚动外,与静态游标相同。当只需要在 Recordset 中进行一个传递时,用它可提高性能。 adOpenKeyset 1 使用键集游标。尽管从您的 Recordset 不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,它和动态游标相似。其他用户所作的数据更改依然可见。 adOpenStatic 3 使用静态游标。一组记录的静态副本,可用于查找数据或生成报告。其他用户所作的添加、更改或删除不可见。 adOpenUnspecified -1 不指定游标类型。 ADO/WFC 等价内容 包:com.ms.wfc.data 常量 AdoEnums.CursorType.DYNAMIC AdoEnums.CursorType.FORWARDONLY AdoEnums.CursorType.KEYSET AdoEnums.CursorType.STATIC AdoEnums.CursorType.UNSPECIFIED

TA的精华主题

TA的得分主题

发表于 2009-12-28 15:21 | 显示全部楼层
当Rs.RecordCount=-1时, 一般是Rs使用了服务器的游标, 出现这种情况时, 在Rs打开头,将Rs.CursorLocation设置为adUseClient就可以了.

打开Rs 的时候确实要注意第三个和第四个参数.Keyset和Lock.

TA的精华主题

TA的得分主题

发表于 2018-5-5 19:32 | 显示全部楼层
uffspace 发表于 2009-12-28 15:21
当Rs.RecordCount=-1时, 一般是Rs使用了服务器的游标, 出现这种情况时, 在Rs打开头,将Rs.CursorLocation设 ...

记录数返回-1表示无法获取实际的记录数,跟CursorLocation类型无关,而跟游标类型CursorType有关。游标类型为adOpenForwardOnly(默认值)时,是没法获得记录数的。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-23 23:00 , Processed in 0.044606 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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