コマンドの取り消し
コマンド オブジェクトの利用 への移動
コマンドを非同期で実行している場合、Execute を呼び出した後、Cancel メソッドを呼び出すことでその実行を中止することができます:
procedure TDataForm.ExecuteButtonClick(Sender: TObject); begin ADOCommand1.Execute; end; procedure TDataForm.CancelButtonClick(Sender: TObject); begin ADOCommand1.Cancel; end;
void __fastcall TDataForm::ExecuteButtonClick(TObject *Sender) { ADOCommand1->Execute(); } void __fastcall TDataForm::CancelButtonClick(TObject *Sender) { ADOCommand1->Cancel(); }
Cancel メソッドは、保留中のコマンドがあり、それが非同期に実行された場合にのみ効果があります(eoAsynchExecute は、Execute メソッドの ExecuteOptions パラメータです)。 コマンドが保留中と言えるのは、Execute メソッドが呼び出されたが、まだ完了またはタイムアウトしていない状態です。
コマンドは、CommandTimeout プロパティで指定された秒数が過ぎる前に、完了またはキャンセルされないと、タイムアウトします。 デフォルトでは、コマンドは 30 秒後にタイムアウトします。