如何解决返回数据库查询纪录条数的…

大家在使用recordcount来实现返回纪录数的时候会发现返回值是-1或者1的时候,很奇怪,经过研究总结了以下几种获得纪录条数的方法:
备注:(我前边发过一篇:数据库连接实例,具体地址: http://blog.sina.com.cn/s/blog_505bf9af01009307.html  希望大家参考学习)

方法一
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    正确的记录数

你可能感兴趣的:(如何解决返回数据库查询纪录条数的…)