sSql = "select * from t2"
    If Not rs.State = adStateClosed Then rs.Close
    rs.CursorLocation = adUseClient
    rs.Open sSql, adoConn
rs读取了很多记录,请问一下,这些记录存在哪了?
我记得在一本书上看过,ado是连接模式的。
我的理解是,这些数据都存在数据库中,并没有读到本地内存。    rs.Filter = "ajxz = '抢劫' and sldw like '%老街%'"
    rs.Requery
    LJqj = rs.RecordCount
记录集的过滤,我感觉它是将过滤条件加在sql语句之后,再重新查询。
但是我在事件查询器里,看到的只是"select * from t2"。
请问一下条件过滤的执行过程是什么样的?

解决方案 »

  1.   

    1、不要太去关心底层的东西。
    2、记录一般会读到本地内存。
    3、Filter是对已经得到的记录集进行筛选。
      

  2.   

    应该是存在本地内存中。获取数据的原则是一次性把所有需要的都取回来。如果查询后的数据还停留在服务器上,需要的时候再取,对服务器和网络都不划算。一个SQL,把所有查到的数据全部传输到本地后,想对这个记录集做任何操作,都不再消耗服务器资源和网络资源,这样才是合理的。楼主提到的rs.Filter也是本地记录集的一个筛查,和服务器无关了。
      

  3.   

    设个断点,读出来后把sql服务停了,看能不能查rs
      

  4.   

    提点别的吧,先有爹才有儿的问题,下面两句的顺序应该颠倒一下:
    If Not rs.State = adStateClosed Then rs.Close
      rs.CursorLocation = adUseClient
    变成  rs.CursorLocation = adUseClientIf Not rs.State = adStateClosed Then rs.Close