ado recordset 对象的 recordcount记数为-1问题,

heguowei 2003-12-08 06:10:50
为什么我的程序在有的机子上用.recordcount返回正确的值,而在我的机子上显示的是-1呢,郁闷很久了
...全文
58 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgxly2002 2003-12-09
  • 打赏
  • 举报
回复
recordset.Open Source, ActiveConnection, CursorType, LockType, Options

要设cursortype,locktype,才能用recordcount属性

使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。

如果 Recordset 对象支持近似定位或书签(即 Supports (adApproxPosition) 或 Supports (adBookmark) 各自返回 True),不管是否完全填充该值,该值将为 Recordset 中记录的精确数目。如果 Recordset 对象不支持近似定位,该属性可能由于必须对所有记录进行检索和计数以返回精确 RecordCount 值而严重消耗资源。

Recordset 对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount 属性将返回 -1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回 -1 或实际计数。

navicy 2003-12-08
  • 打赏
  • 举报
回复
使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。

Recordset 对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount 属性将返回 -1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回 -1 或实际计数。

所以你要更改游标类型才能使用RecordCount属性
heguowei 2003-12-08
  • 打赏
  • 举报
回复
也就是说我用set rs=conn.execute sql时,在有数据情况下用recordcount,返回的就不是-1,可我的机子返回的是-1,而相同的程序在有的服务器上就不是,这是什么原因呢
shleo 2003-12-08
  • 打赏
  • 举报
回复
excute是默认1,1
每个机器都是一样,这和机器无关,是语句的默认
heguowei 2003-12-08
  • 打赏
  • 举报
回复
但是为什么在有的机子上运行时就返回正确的记录数,
我的打开数据库记录方法是:
set rs=conn.execute sql
是不是机的默认值不一样呢,
shleo 2003-12-08
  • 打赏
  • 举报
回复
游标集的问题
默认是1,1
1表示前向游标
会返回-1
heguowei 2003-12-08
  • 打赏
  • 举报
回复
我想知道为什么,谢谢
bingofei 2003-12-08
  • 打赏
  • 举报
回复
rs.open sql,conn,3,1

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧