取消异步执行作。
语法
HRESULT Abort(
HCHAPTER hChapter,
DBASYNCHOP eOperation);
论据
hChapter[in]
中止作的章节的句柄。 如果所调用的对象不是行集对象,或者作不适用于章节,则调用方必须将 hChapter 设置为DB_NULL_HCHAPTER。
eOperation[in]
要中止的作。 此值应为以下值:
DBASYNCHOP_OPEN-The 取消请求适用于行集的异步打开或填充或数据源对象的异步初始化。
返回代码值
S_OK
已处理取消异步作的请求。 这不能保证作本身已取消。 若要确定作是否已取消,使用者应调用 ISSAsynchStatus::GetStatus 并检查DB_E_CANCELED;但是,在下一次调用中可能不会返回它。
DB_E_CANTCANCEL
无法取消异步作。
DB_E_CANCELED
在通知期间取消了中止异步作的请求。 该作仍在异步执行。
E_FAIL
发生了提供程序特定的错误。
E_INVALIDARG
hChapter 参数未DB_NULL_HCHAPTER或 eOperation 未DBASYNCH_OPEN。
E_UNEXPECTED
ISSAsynchStatus::Abort 是在 IDBInitialize::Initialize 尚未调用或尚未完成的数据源对象上调用的。
ISSAsynchStatus::Abort 是在 调用 IDBInitialize::Initialize 的数据源对象上调用的,但在初始化之前随后取消,或已超时。数据源对象仍未初始化。
ISSAsynchStatus::Abort 是在 以前调用 ITransaction::Commit 或 ITransaction::Abort 的行集上调用的,并且行集在提交或中止后无法幸存,并且处于僵尸状态。
ISSAsynchStatus::Abort 是在初始化阶段异步取消的行集上调用的。 行集处于僵尸状态。
注解
中止行集或数据源对象的初始化可能会使行集或数据源对象处于僵尸状态,使 除 IUnknown 方法以外的所有方法都返回E_UNEXPECTED。 发生这种情况时,使用者的唯一可能作是释放行集或数据源对象。
调用 ISSAsynchStatus::Abort 并传递除 DBASYNCHOP_OPEN 以外的 eOperation 的值将返回S_OK。 这并不表示作已完成或已取消。