今天编写一个网页,希望用rs.recordcount得到记录的总数,但奇怪的是得到的结果总是-1,但实际是有记录的.
rs.recordcount经常用到,为什么这次就不行了呢?我现在用的数据库是MSSQL,会不会与这有关?于是把数据库改为ACCESS,用rs.recordcount得到了正确的结果.
后来查找有关资料,原来ASP+MSSQL编程里要设置记录集游标的类型,即Rs.CursorLocation.
Rs.CursorLocation对recordcount的影响如下:
光标类型 recordcount 属性
———————————————
ForwardOnly 0(默认) 返回-1
Keyset 1 正确的记录数
Dynamic 2 -1或不正确的记录数,依数据源而定
Static 3 正确的记录数
所以,在ASP+MSSQL里正确的写法应该是:
sql="XXXXXXX"
Set rs = Server.CreateObject("Adodb.Recordset")
rs.CursorLocation = 3
rs.Open SQL,Conn,1,1
response.write rs.recordcount