ASP+MSSQL编程里用rs.recordcount得到-1的错误解决方法

Keep Open and Learning
Post Reply
星际浪子
Posts: 3597
Joined: 01 May 2009 23:45

ASP+MSSQL编程里用rs.recordcount得到-1的错误解决方法

Post by 星际浪子 » 24 May 2009 21:27

今天编写一个网页,希望用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

Post Reply