如何查看句柄中查询执行的进度?
问题描述:
我用下面的代码在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;
,但.... 我看不到任何效果(此代码不执行)
我想表明的进展在用户从开始点击数据库中的SEARCH按钮以完成进度条中的过滤器时执行查询。
按钮的onclick代码:
with ADOQuery1 do
begin
SQL.Clear;
SQL.Add('select * from tbl1 where id = '+Edit1.Text);
Open;
end;
,但我不进度条任何突变,好像不写在OnFetchProgress事件的任何代码。
我代表你吗?
答
必须设置属性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;
+0
坦克你为这个answare – NiliDelphi 2010-11-22 08:18:32
请添加更多信息。我们无法从中帮助。你的意思是你的程序没有被调用?在这种情况下,与程序本身无关,而是安排它被调用的代码,但是你没有向我们展示过任何。 – 2010-11-21 09:12:44
我编辑了我的问题.... – NiliDelphi 2010-11-21 12:30:37
您是否正在检索您的记录[异步](http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devwin32/adofetchingrecordsasynchronously_xml.html)? – 2010-11-21 12:58:15