51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4226|回复: 5
打印 上一主题 下一主题

[求助] 查询oracle数据库,recordCount返回值为-1

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-8-27 12:21:15 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
用以下脚本查询oracle数据库。然后把查询结果的行数存入rowCount,但rowCount的值一直为-1,即使查询的结果是有几行的。
Set oCon = CreateObject("ADODB.Connection")
Set oRs = CreateObject("ADODB.Recordset")
oCon.Open strCon
If oCon.State = 0 Then
msgbox("fail to connect DB")
End If
oRs.Open sql,oCon,1,1
Dim rowCount
rowCount=oRs.RecordCount
MsgBox rowCount

上网查了挺多资料,有的说是cursortype不行,要用客户端的游标,
有的说cursor位置应该置为3,ors.cursorlocation=3,
挺多方法都试过,都不行。
麻烦各位指点指点,困惑。。。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

6#
发表于 2009-8-27 14:28:55 | 只看该作者
定义ADO连接是用客户端的游标.   
  采用客户端游标能够使用几乎所有的ADO属性,不用去关心服务器是什么DBMS,   而使用服务器端游标的话,某些DBMS不支持部分的ADO属性(比如recordcount)
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2009-8-27 14:22:57 | 只看该作者
原帖由 hsjzfling 于 2009-8-27 14:05 发表
以下是ADO手册中的描述:
使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCou ...



嗯,按你这么说的话,recordCount好像也是不那么好用了。不知有没有其他的方法可以记录结果集的行数的。。。

还有,能否share一份ADO手册??

谢谢^_^
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-8-27 14:20:54 | 只看该作者

回复 2# 的帖子

哈哈,用你的方法解决了,原来是要把Connection对象的cursorlocation=3。
谢谢^_^
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-8-27 14:05:52 | 只看该作者
以下是ADO手册中的描述:
使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。

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

使用道具 举报

该用户从未签到

2#
发表于 2009-8-27 13:57:52 | 只看该作者
set connection = CreateObject("ADODB.Connection")
connection.cursorLocation=3
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 14:17 , Processed in 0.077783 second(s), 30 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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