社区
数据库(包含打印,安装,报表)
帖子详情
我用ADO连接数据库后,用recordset打开一个表,为什么recordcount的返回值是-1呢?
efei0731
2003-03-09 04:51:49
不用怀疑数据库里有没有记录
...全文
151
11
打赏
收藏
我用ADO连接数据库后,用recordset打开一个表,为什么recordcount的返回值是-1呢?
不用怀疑数据库里有没有记录
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
enhydraboy
2003-03-10
打赏
举报
回复
rs.cursorlocation=adUserclient
kite_zeng
2003-03-10
打赏
举报
回复
游标问题,好解决,可看联机帮助
DimVar
2003-03-10
打赏
举报
回复
得到记录集中记录数目(各种游标)
1. rs.CursorType = adOpenDynamic
rs.MoveLast
rs.MoveFirst
msgbox rs.RecordCount
2. rs.CursorType = adOpenKeyset or rs.CursorType = adOpenStatic
msgbox rs.RecordCount
3. rs.CursorType = adOpenForwardOnly
msgbox rs.RecordCount 'return -1
饮水需思源
2003-03-10
打赏
举报
回复
rs.open ....
if rs.recordcount>0 then
rs.movelast
rs.movefirst
msgbox rs.recordcount
end if
happybeyond
2003-03-10
打赏
举报
回复
rs.cursorlocation=adUserclient
mikyxyc
2003-03-10
打赏
举报
回复
这里高手多,顺便在这问个问题:
rs.Open sqlstr, conn, adOpenKeyset, adLockPessimistic
用如上语句打开数据库,数据库中无记录,为何rs.AbsolutePosition=1,且rs.recordcount=1
qiqi0609
2003-03-09
打赏
举报
回复
如果一个记录集不支持书签(光标类型为只向前或动态),则RecordCount属性总是返回-1。
qiqif
2003-03-09
打赏
举报
回复
这是游标问题
解决方法很简单
一是设置游标,二是先加一句movelast
Girl1983
2003-03-09
打赏
举报
回复
Filter 和 RecordCount 属性范例
该范例使用 Filter 属性打开一个新的 Recordset,它基于适用于已有 Recordset 的指定条件。它使用 RecordCount 属性显示两个 Recordsets 中的记录数。该过程运行时需要 FilterField 函数。
Public Sub FilterX()
Dim rstPublishers As ADODB.Recordset
Dim rstPublishersCountry As ADODB.Recordset
Dim strCnn As String
Dim intPublisherCount As Integer
Dim strCountry As String
Dim strMessage As String
' 使用出版商表中的数据打开记录集。
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set rstPublishers = New ADODB.Recordset
rstPublishers.CursorType = adOpenStatic
rstPublishers.Open "publishers", strCnn, , , adCmdTable
' 充填记录集。
intPublisherCount = rstPublishers.RecordCount
' 让用户输入。
strCountry = Trim(InputBox( _
"Enter a country to filter on:"))
If strCountry <> "" Then
' 打开已筛选的记录集对象。
Set rstPublishersCountry = _
FilterField(rstPublishers, "Country", strCountry)
If rstPublishersCountry.RecordCount = 0 Then
MsgBox "No publishers from that country."
Else
' 打印原始记录集和已筛选记录集对象的记录数。
strMessage = "Orders in original recordset: " & _
vbCr & intPublisherCount & vbCr & _
"Orders in filtered recordset (Country = '" & _
strCountry & "'): " & vbCr & _
rstPublishersCountry.RecordCount
MsgBox strMessage
End If
rstPublishersCountry.Close
End If
End Sub
Public Function FilterField(rstTemp As ADODB.Recordset, _
strField As String, strFilter As String) As ADODB.Recordset
' 在指定的记录集对象上设置筛选操作并打开一个新的记录集对象。
rstTemp.Filter = strField & " = '" & strFilter & "'"
Set FilterField = rstTemp
End Function
注意 当已知要选择的数据时,使用 SQL 语句打开 Recordset 通常更为有效。该范例说明了如何创建唯一的 Recordset 并从特定的国家(地区)获得记录。
Public Sub FilterX2()
Dim rstPublishers As ADODB.Recordset
Dim strCnn As String
' 使用出版商表中的数据打开记录集。
strCnn = "Provider=sqloledb;" & _
"Data Source=srv;Initial Catalog=pubs;User Id=sa;Password=; "
Set rstPublishers = New ADODB.Recordset
rstPublishers.CursorType = adOpenStatic
rstPublishers.Open "SELECT * FROM publishers " & _
"WHERE Country = 'USA'", strCnn, , , adCmdText
' 打印记录集中的当前数据。
rstPublishers.MoveFirst
Do While Not rstPublishers.EOF
Debug.Print rstPublishers!pub_name & ", " & _
rstPublishers!country
rstPublishers.MoveNext
Loop
rstPublishers.Close
End Sub
Girl1983
2003-03-09
打赏
举报
回复
使用 RecordCount 属性可确定 Recordset 对象中记录的数目。ADO 无法确定记录数时该属性返回 –1。读已关闭的 Recordset 上的 RecordCount 属性将产生错误。
如果 Recordset 对象支持近似定位或书签(即 Supports (adApproxPosition) 或 Supports (adBookmark) 各自返回 True),不管是否完全填充该值,该值将为 Recordset 中记录的精确数目。如果 Recordset 对象不支持近似定位,该属性可能由于必须对所有记录进行检索和计数以返回精确 RecordCount 值而严重消耗资源
jxfzcgh
2003-03-09
打赏
举报
回复
确定rs.CursorType=adopenstatic
利用
ADO
连接数据库
时,Rs.
record
count
总是返回-1,解决办法
学习过程中总是麻烦不断
一个
小小的问题也可以折腾一晚上! 在用
ADO
链接sql 进行数据操作的时候 要取记录集总数 Rs.
record
count
取出来的却总是-1 在百度来回寻找终于找到解决办法 就是在记录集
打开
前加上...
asp mysql rs.
record
count
_asp中rs.
record
count
返回值
总是为-1的解决方法
我们在利用ASP程序进行分页的时候,特别是在用到统计记录总数的属性rs.
record
count
时,有时结果会出现-1,...因为是rs的游标类型问题因为conn后第
一个
数字是1
表
示指针只能往前,3
表
示自由指针使用
Record
Count
属性可...
Rs.
record
count
=-1的解决办法
利用
ADO
连接数据库
时,Rs.
record
count
总是返回-1,可能的解决办法如下:在记录集
打开
前加上rs.cursorlocation=3 rs.CursorLocation=3 是什么意思 3 代
表
rs.CursorLocation = adUseClient 就是代
表
...
ASP开发中关于
Record
Count
只返回-1的问题解接方式!
到WEB版,经常见有人问,为什么我的
Record
Count
总是只返回-1的问题? 典型问题: 是否可以告诉我下面的代码什么地方出错了? Set objConn = Server.CreateObject("
ADO
DB.Connection")Set objRst = Server....
ADO
对象之
Record
set
用法总结
在
ADO
程序中,记录集(
Record
set
)对象代
表
一个
表
的记录集合或者是
一个
SQL命令或存储过程执行结果。简单地说:记录集实际上缓存了从数据库获得的记录,应用程序可以从记录集中获得每条记录的字段。
Record
set
对象的...
数据库(包含打印,安装,报表)
1,216
社区成员
55,954
社区内容
发帖
与我相关
我的任务
数据库(包含打印,安装,报表)
VB 数据库(包含打印,安装,报表)
复制链接
扫一扫
分享
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章