关于recordcount等-1的问题

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

1mssql--asp的rs.recordcount值为负1

只有以ADO方式调用数据库才有recordcount这一说,用存储过程需要用select count(*) from table_name自行统计

? 这个说的不对, 存储过程也可以用 ado 来打开,比如:rs.open "exec SomeProc", conn, 1, 3我处理解决的方法是rs.open sql,conn,1,1解决此问题

2通常人们使用以下两种方法来执行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 正确的记录数

所以Rs.CursorLocation = 3

可用recordset.support("属性名")进行测试是否支持该属性。

http://www.dwww.cn/new/20051128112149636.html

3Set oRs = Server.CreateObject("ADODB.RecordSet")

oRs.Open sSql, oConn, 1, 1

来读数据,

要不就用Select Count(*) As RecordCount From [table]

oRs("RecordCount")来获取

要不就用Do While Not oRs.Eof

RecordCount = RecordCount + 1

Loop

4\我的数据库是这么连接的:

strconn = "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("bbs.mdb")

set conn = server.createobject("adodb.connection")

conn.open strconn

sql="SELECT * FROM space "

set rs=createobject("adodb.recordset")

rs.open sql,conn,1,1

可是的确有记录集返回

还可以显示

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航