AdoDB.recordcount的小问题?

zhsunson 2004-09-28 01:03:42
AdoDB.recordcount的小问题?
返回数据集时,有时正常,有时为-1。
我要得到数据集的记录数,为-1时如何处理?
...全文
69 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
bladeinside 2004-09-28
我们常用RecordCount属性来找出一个Recordset对象包括多少条记录。使用 RecordCount 属性可确定Recordset 对象中记录的数目。ADO 无法确定记录数时,或者如果提供者或游标类型不支持 RecordCount,则该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。Recordset 对象的游标类型会影响是否能够确定记录的数目。对仅向前游标,RecordCount 属性将返回 -1,对静态或键集游标返回实际计数,对动态游标取决于数据源返回 -1 或实际计数。

或者
由于默认的记录集游标是服务器游标,
Rs.CursorLocation = adUseServer
所以返回Rs.RecordCount=-1,
应该把服务器游标改为客户端游标,
Rs.CursorLocation = adUseClient
回复
ryuginka 2004-09-28
还有一种方法,就是在打开之前
加上
rs.movelast
rs.movefirst
回复
huangjing81 2004-09-28
改游标
回复
vzxq 2004-09-28
把游标类型改一下就成,改为静态的
回复
chelseawu 2004-09-28
Dim DB As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Const connstr = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog= ;Data Source= "

Private Sub Form_Load()
DB.ConnectionTimeout = 0
DB.CursorLocation = adUseClient
DB.OPEN connstr
End Sub
回复
chelseawu 2004-09-28
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub Form_Load()
DB.ConnectionTimeout = 0
DB.CursorLocation = adUseClient
End Sub
回复
jam021 2004-09-28
关注,帮你顶!
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告