为什么asp中adodb.recordset.recordcount的值总是等于-1?(100分)

W

willsu

Unregistered / Unconfirmed
GUEST, unregistred user!
源代码如下:
set cn=server.createobject("adodb.connection")
cn.open "dsn=.."
set rs=server.createobject("adodb.recordset")
rs.open "select * from aa",cn 'aa表中有记录
response.write(rs.recordcount & "条记录")
-----------------------------------------------------
result:-1条记录
我真搞不懂了。
 
你打开的是单向静态集合 adOpenForwardOnly
这种打开方式下 RecordCount 在 MoveLast之后才有效
你可以这样写打开主键静态集,
Rs.open "SELECT * FROM aa",cn,adOpenKeyset
具体信息查看
MSDN ADO 2.1 中相关章节
 
如果有图片或有超大文本会返回-1
query:select count(*) from table where field=:..

query.close;
query.open;
while query.eof<>true do
begin
sqlcount;=query.fields[0].asinteger;
query.next;
end
 
adodb.recordset.recordcount的值是靠不住的,你最好手工数一下,
count =0
recordset.movefirst
while not eof do
count=count+1
recordset.movenext
end while
 
to jobslee:
Thanks,请问哪里有 msdn ado 2.1可以下载。
 
to 各位兄台:
请问能否配置adodb.recordset.open 中的各参数而直接得到recordcount的值,
不用movelast或while语句计算。
 
rs.open sql,cn,1,1即可
 
顶部