我用adoquery读取后台大量数据的时候,怎样得知adoquery的读取进度,用进度条显示出来?

解决方案 »

  1.   

    是你呀,我很菜,没办法,只好把光标设置一下,进度条让他自己随便吧,当读取完了,setpos(100),馊主意,见笑
      

  2.   

    ------
    sorry,我提个不太好的意见:
    首先用select count(*)得出所需要的数据纪录数,然后在分段(比如10000条/每次)读出数据->更新进度条->再读下一批或者用上次你运行的时间作为近似的参考值记录下来,认为这次的时间也差不多,这样按上次的时间更新进度条.拙见,水平所限,望谅:)
      

  3.   

    好象没有办法。zzjzhao(风云) 的方法倒可以使用。可以让进度条循环着跑。直到读取完成。
      

  4.   

    首先取记录总数count(*)
    然后异步打开,用定时器取当前记录数,取得后与总数比较,更新进度条
      

  5.   

    同意: firetoucher(蹈火者) 的看法
      

  6.   

    procedure TForm1.ADODataSet1FetchProgress(DataSet: TCustomADODataSet; Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
    begin
      Caption := 'Percent complete: ' +
        IntToStr(Trunc(Progress / MaxProgress * 100)) + '%';
      Application.ProcessMessages;
    end;不过得设置成异步处理