各位高手:
    我将 ADOQuery 的[eoAsyncFetchNonBlocking] 属性设为 True
         这样在数据量大 的时候可以 逐条获得数据
               但是  获得的数据在grid中不能显示  第一条和最后一条
                要想查看只有通过移动上下键来获得, 即使使用  AQ.Last也不能得到最后一条数据  ,为什么啊》           
        谢谢

解决方案 »

  1.   

    这个问题,你可以看看我的发的问题,也遇到这种情况,在大富翁里
    http://www.delphibbs.com/delphibbs/dispq.asp?lid=2573831
    如果不需要把ADOQuery 的[eoAsyncFetchNonBlocking] 属性设为 True,最好别设,我是用了在查询中显示查询过程(用进度条显示)才设置的,最后,我不得不用另一个数据集来显示最后一条,其实dbgrid有是有数据的,只不过,需要单击滚动条几次,你可以试试,但是对用户来说就不方便了
      

  2.   

    当然是这样了,其实你在SQL Explore中执行sql语句时都有这个问题,如果记录没有从数据库取出,就无法操作成功
      

  3.   

    to Cipherliu(孤鹰),不是没有提取出来,而是,ADOQuery 的[eoAsyncFetchNonBlocking] 属性设为 True之后,数据量超过一定数量才出现虽然数据已经提取出来,但是last之后始终默认停留在adoquery.recordcount-1上,这才是关键所在
      

  4.   

    这个我也遇到了 所以需要你点击DBGRID的滚动条才能看到,应该是异步的问题,如果你不是特别需要这种方法的话,我觉得异步并不是很可取,如果各位大大有什么好方法的话,可以指教我一下