Как увидеть прогресс выполнения запроса во время обработки? - PullRequest
3 голосов
/ 21 ноября 2010

Я использовал следующий код в delphi для дескриптора:

procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet; Progress,

  MaxProgress: Integer; var EventStatus: TEventStatus);

begin

    Progressbar1.Visible:=true;

    Progressbar1.Max:=MaxProgress;

    Progressbar1.Ppsitian:=Progress;

    Progressbar1.Visible:=false;

end;

, но .... Я не вижу никакого эффекта (этот код не выполняется)

Я хочу показать ход выполнения запроса во время, когда пользователь нажал кнопку для ٍُ ПОИСК в базе данных с начала, чтобы закончить фильтрацию на панели прогресса.

кнопка кодов клика:

with ADOQuery1 do

begin

SQL.Clear;

SQL.Add('select * from tbl1 where id = '+Edit1.Text);

Open;

end;

но я не вижу мутаций в индикаторе выполнения, как будто не пишу код в событии OnFetchProgress.

Я представлял тебя?

1 Ответ

5 голосов
/ 21 ноября 2010

Вы должны установить свойство ExecuteOptions в eoAsyncFetch, прежде чем вызывать открытую процедуру

проверьте этот образец

with ADOQuery1 do
begin
 SQL.Clear;
 SQL.Add('select * from tbl1 where id = '+Edit1.Text);
 ExecuteOptions:=[eoAsyncFetch];
 Open;
end;


procedure TForm1.ADOQuery1FetchProgress(DataSet: TCustomADODataSet; Progress,
  MaxProgress: Integer; var EventStatus: TEventStatus);
begin
  ProgressBar1.Max      :=MaxProgress;
  ProgressBar1.Position :=Progress;
  Application.ProcessMessages;
end;
...