小
小城月光
Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手:
以下是李维在他的ADO这本书中的例子,关于ADO异步执行,同时显示一个查询进度条的问题,但执行出错,不知道什么原因?
procedure TForm1.FormActivate(Sender: TObject);
var
sRecNo : String;
begin
ProgressBar1.Max := ADOCommand1.Execute.Fields.Item[0].Value;
sRecNo := IntToStr(ProgressBar1.Max);
Self.Caption := '?Τ' + sRecNo + ' 掸戈?';
end;
procedure TForm1.ADODataSet1FetchProgress(DataSet: TCustomADODataSet;
Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
begin
ProgressBar1.Position := Progress;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
try
ADODataSet1.Active := False;
ADODataSet1.ExecuteOptions := [eoAsyncFetchNonBlocking];
finally
lStart := GetTickCount;
ADODataSet1.Active := True;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
try
ADODataSet1.Active := False;
ADODataSet1.ExecuteOptions := [eoAsyncFetch];
finally
lStart := GetTickCount;
ADODataSet1.Active := True;
end;
end;
procedure TForm1.ADODataSet1FetchComplete(DataSet: TCustomADODataSet;
const Error: Error; var EventStatus: TEventStatus);
begin
lEnd := GetTickCount;
ShowMessage('羆???' + FloatToStr((lEnd - lStart) / 1000.0) + '?');
end;
执行出错提示“Canvas does not allow drawing”,为什么?
以下是李维在他的ADO这本书中的例子,关于ADO异步执行,同时显示一个查询进度条的问题,但执行出错,不知道什么原因?
procedure TForm1.FormActivate(Sender: TObject);
var
sRecNo : String;
begin
ProgressBar1.Max := ADOCommand1.Execute.Fields.Item[0].Value;
sRecNo := IntToStr(ProgressBar1.Max);
Self.Caption := '?Τ' + sRecNo + ' 掸戈?';
end;
procedure TForm1.ADODataSet1FetchProgress(DataSet: TCustomADODataSet;
Progress, MaxProgress: Integer; var EventStatus: TEventStatus);
begin
ProgressBar1.Position := Progress;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
try
ADODataSet1.Active := False;
ADODataSet1.ExecuteOptions := [eoAsyncFetchNonBlocking];
finally
lStart := GetTickCount;
ADODataSet1.Active := True;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
try
ADODataSet1.Active := False;
ADODataSet1.ExecuteOptions := [eoAsyncFetch];
finally
lStart := GetTickCount;
ADODataSet1.Active := True;
end;
end;
procedure TForm1.ADODataSet1FetchComplete(DataSet: TCustomADODataSet;
const Error: Error; var EventStatus: TEventStatus);
begin
lEnd := GetTickCount;
ShowMessage('羆???' + FloatToStr((lEnd - lStart) / 1000.0) + '?');
end;
执行出错提示“Canvas does not allow drawing”,为什么?