请问有关oracle中的cursor类型

yhp 2001-09-06 11:13:09
我在用ado连接oracle 8.05时,返回的recordcount等于-1,代码如下
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.Open "Provider=MSDAORA.1;Password=bjxt;User ID=bjxt;" & _
"Data Source=bjxt;Persist Security Info=True"
rs.Open "select * from yqdm", conn, 1, 1
MsgBox rs.RecordCount
此时显示-1,但是如果在rs.Open "select * from yqdm", conn, 1, 1 之前加入
rs.CursorLocation = adUseClient
此时显示了正确的结果22。
但是如果连接到sql server 7,rs.cursorlocation等于adUseClient还是adUseServer
都能得到正确的结果。

所以请问这是什么原因?oracle 中的cursor类型是什么?
...全文
107 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jneu 2001-09-25
  • 打赏
  • 举报
回复
gz
yhp 2001-09-25
  • 打赏
  • 举报
回复
就没有人知道这个原因吗?
KingSunSha 2001-09-25
  • 打赏
  • 举报
回复
没完全试过。大概知道AbsolutePosition, AbsolutePage, BookMark, PageSize等不支持。
你把CursorLocation设成server方式,试一下就知道了。

再说了,通常都用client模式的CursorLocation,知道这个也没什么用,换一种RDBMS又不一样了。
yhp 2001-09-25
  • 打赏
  • 举报
回复
那上面的原因主要是oracle不支持recordcount所造成的了。谢谢!
能不能在列举一些对于ado,oracle不支持的属性?先谢了。
KingSunSha 2001-09-25
  • 打赏
  • 举报
回复
你所说的CursorLocation属性是ADO的一个特性, 是指游标控制的提供者. 每个RDBMS的处理方式都不尽相同(象ORACLE不支持RECORDCOUNT), 所以把CURSORLOCATION设成CLIENT端后(即由ADO控制游标,而不是服务器控制又表),才能使用ADO的所有属性(象RECORDCOUNT).
至于ORACLE中的CURSOR, 是指数据库自身管理的一块临时空间, 存放了CURSOR指定的纪录集, 一般用于循环读取.

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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