取recordcount之前是不是必须rs.movelast:rsmovefirst才行?请教老师。
我看书上这第写的,说是如果不移动指针,有可能造成统计行数会不准,是真的吗?

解决方案 »

  1.   

    本人试过用不用方法打开表recordcount不是很准
    用SQL语句吧
    select count(字段) as n from 表 记录量=rs.Fields("n")
      

  2.   

    不用movelast和rsmovefirst
    按下面的打开就可以得到recordcount
    rst.Open ssql, con, adOpenKeyset, adLockPessimistic
      

  3.   

    不会不准的.只有一种情况:如果你不是用的客户端游标,在有记录的情况下recordcount=-1
      

  4.   

    如果将CursorLocation 属性设置为 adUseClient则Recordset 的游标自动变为adOpenKeySet 
    支持adholdrecords book.
    如果设为adUseServer,
    adOpenStatic 与CursorLocation = adUseServer的组合
    支持 adapproxposition,adholdrecords,book,admovepreviousadOpenKeySet 与CursorLocation = adUseServer的组合
    支持 adapproxposition,adholdrecords,book,admoveprevious,adresync支持adholdrecords book.则recordcount的值都会正确。而你说的取recordcount之前是不是必须rs.movelast的原因是由于,你用的是这样的组合
    adOpenForwardOnly 与 CursorLocation = adUseServer的组合
    支持向前但不支持计数。
    细详请看:http://blog.csdn.net/cly2004/archive/2005/03/29/333304.aspx
      

  5.   

    所以客户端游标的选择是是否准的关键。但并不是只有客户端的游标才会使recordcount准。根本原因在于是否支持了adholdrecords