51Testing软件测试论坛
标题:
如何解决返回数据库查询纪录条数的总结
[打印本页]
作者:
jiangyuetian
时间:
2007-9-28 11:15
标题:
如何解决返回数据库查询纪录条数的总结
大家在使用recordcount来实现返回纪录数的时候会发现返回值是-1或者1的时候,很奇怪,经过研究总结了以下几种获得纪录条数的方法:
方法一
Set oRs = Server.CreateObject("ADODB.RecordSet")
oRs.Open sSql, oConn, 1, 1
来读数据.
仅检索数据:rs.open SQL,conn,1
更新数据:rs.open SQL,conn,2,2,1
方法二
用Select Count(*) As RecordCount From [table]
oRs("RecordCount")来获取
方法三
用Do While Not oRs.Eof
RecordCount = RecordCount + 1
Loop
方法一原理如下:
通常人们使用以下两种方法来执行SQL语句:
Set Rs=Conn.Execute(SqlStr)
和
Set Rs=Server.CreateObject(“ADODB.RecordSet“)
Rs.Open SqlStr,Conn,CursorType,LockType
(RecordSet对象方法请看这里)
由于默认的记录集游标是服务器游标,
Rs.CursorLocation = adUseServer
所以返回Rs.RecordCount=-1,
应该把服务器游标改为客户端游标,
Rs.CursorLocation = adUseClient
Rs.Open SqlStr,Conn,CursorType,LockType
rs.cursortype
光标类型 recordcount 属性
---------------------------------------------
ForwardOnly 0(默认) 返回-1
Keyset 1 正确的记录数
Dynamic 2 -1或不正确的记录数,依数据源而定
Static 3 正确的记录数
作者:
getfly
时间:
2008-4-15 10:59
好贴
作者:
dreamever
时间:
2008-4-15 13:26
不错,学习了,呵呵
作者:
getfly
时间:
2008-4-15 14:04
楼主,利用command.Execute得到的结果集和通过RecordSet.open 得到的结果集中, 游标的属性有什么区别吗?
作者:
angelia_liu
时间:
2009-2-16 18:18
学习了.
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2