VB+SQL 6.5 WHY? rs.recordcount=-1

amstar 2000-08-10 08:10:00
dim connect as new adodb.connect
dim rs as new adodb.recordset

connect.open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=xbdatabase;Data Source=192.168.0.111"

rs.open"select * from salsedetail where salesNo='A2000-001'",connect,adOpenKeyset, adLockOptimistic

if rs.recordcount>0 then
...
end if
請問:為什麼rs.recordcount=-1,並且rs("salesno")='A2000-001',rs("rmid")="FB001"
...全文
243 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zdg 2000-08-20
  • 打赏
  • 举报
回复
和ASP一样, 应该是记录集打开的方式不对造成的...
关于这个问题的探讨已经很多了, 建议大家看看:
http://210.77.155.27/expert/TopicView.asp?id=17071
http://210.77.155.27/expert/TopicView.asp?id=13089
http://210.77.155.27/expert/TopicView.asp?id=15633
chenxixian 2000-08-20
  • 打赏
  • 举报
回复
为什么一定要用rs.recordcount才可以查出数量?

dim connect as new adodb.connect
dim rs as new adodb.recordset

connect.open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=xbdatabase;Data Source=192.168.0.111"

set rs=connect.execute "select count(*) from salsedetail where salesNo='A2000-001'"

msgbox rs(0)
masterkey 2000-08-17
  • 打赏
  • 举报
回复
这样写,你再试试! 一定没有问题!
dim connect as new adodb.connect
dim rs as new adodb.recordset

connect.CursorLocation=adUseClient
connect.open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=xbdatabase;Data Source=192.168.0.111"

rs.open "select * from salsedetail where salesNo='A2000-001'",connect,adOpenKeyset, adLockOptimistic,adCmdText

if rs.recordcount>0 then
...
end if
razzor 2000-08-16
  • 打赏
  • 举报
回复
你是不是采用只读向下的方式,这样结果集肯定是-1
amstar 2000-08-12
  • 打赏
  • 举报
回复
不行!我用set rs.CursorLocation=adUseClient 老是報告:Compile error:Invalid use of property.為什麼??lczddd老兄的辦法太慢了。我現在已是用這種方法,所以要改進.
Un1 2000-08-10
  • 打赏
  • 举报
回复
rs.movelast
masterkey 2000-08-10
  • 打赏
  • 举报
回复
记得在程序开始时设置 set rs.CursorLocation=adUseClient ,然后再用OPEN之类的语句应该就没有问题了,以前我也遇到过同样的问题!
lzliming 2000-08-10
  • 打赏
  • 举报
回复
你的意思是实际有记录,但是recordcount=-1?
其实recordcount不是任何时候都灵,
判断有否记录用头尾结束标志。
lczddd 2000-08-10
  • 打赏
  • 举报
回复
应该说是一个bug,但书上说是能返回记录的个数,其实不可用,试试上边各位人兄的建议,也可这样做:
i=0
rs.movefirst
do while no rs.eof
i=i+1
rs.movenext
loop
此时i试记录数

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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