有个查询,想用个进度条表示从开始查询到结果完全在dbgrid中显示出来的进度!!!
先谢了

解决方案 »

  1.   

    一条查询命令吗?
    是数据库执行的,程序怎么判断。
    若多条sql命令还可以
      

  2.   

    最简单的方法是把进程条的value加在查询过程中
      

  3.   

    只有多次查询,sql server的话有"select top X from ...."的语句,这样来实现一段一段的查。
      

  4.   

    procedure TForm1.ADOTable1FetchProgress(DataSet: TCustomADODataSet;
      Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
    begin
      form1.ProgressBar1.Position:=progress*100 div maxprogress;
      application.ProcessMessages;
    end;
      

  5.   

    用个线程应该可以吧,线程同步访问VCL主线程的资源
      

  6.   

    多条SQL可以向上面所说的,要是单条就只能跟踪到数据库里面去了
      

  7.   

    把进程条的value放入就可了。
      

  8.   

    不好意思,请问如何才能把进程条的value加在查询过程中,还有我有的是adoquery.
    to:lovelymelon  我试了,好像不行。
      

  9.   

    ADOQuery1.recordcount给你的进度条啊
    while ADOQuery1.eof do 
    begin
      进度条如何如何
      next;
    end;
      

  10.   

    With RptSQLDetail do
          begin
            First;
            while not EOF do
            begin
              My_Dep := RptSQLDetail.FieldByName('Dep').AsString;
              if (IsNeededDep(MY_Dep, Combo_Dep_F3, DstList, Dep_Chk_Tbl))and
                 (DstListACC.Strings[J]=RptSQLDetail.FieldByName('ACC_NO').AsString)then
              begin
                  Inc(iProgressValue);
                  FProgress.Value:=iProgressValue mod MyMaxValue;
                  FProgress.Text :=sProgressTitle;
                  Application.ProcessMessages;
                  if FProgress.IsCanceled then
                  begin
                      FProgress.Hide;
                      Break_Ok  :=True;
                      Exit;
                  end;
      ***************