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