ICommand::Cancel

Cancels the current command execution.

HRESULT Cancel();

Parameters

None.

Return Code

S_OK
The method succeeded.

The command was not executing.

E_FAIL
A provider-specific error occurred.

DB_E_CANTCANCEL
The executing command cannot be canceled.

Comments

Cancel may be called on a separate thread after Execute has been called and before the method has returned. If the executing command can be canceled, the method returns S_OK, and Execute returns DB_E_CANCELED. If the executing command cannot be canceled, Cancel returns DB_E_CANTCANCEL and Execute continues. If the Execute method has not been called or has already returned, the method returns S_OK.

If the DBPROPVAL_ASYNCH_INITIALIZE bit in the DBPROP_ROWSET_ASYNCH property has been set prior to execution of the command, the Execute method may return with DB_S_ASYNCHRONOUS before the command has fully executed. Calling ICommand::Cancel after the Execute method has returned has no effect on any asynchronously executing commands. Once the Execute method has returned DB_S_ASYNCHRONOUS, the command can only be canceled by calling IDBAsynchStatus::Abort on the returned object.

See Also

ICommand::Execute