ISSAsynchStatus::Abort (Native Client OLE DB Provider)

适用于:SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics Analytics 平台系统(PDW)

重要

已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中移除 SQL Server Native Client(通常缩写为 SNAC)。 不建议在新的开发工作中使用 SQL Server Native Client OLE DB 提供程序(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 此后请切换到新的 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server

取消异步执行的操作。

语法

  
HRESULT Abort(  
        HCHAPTER hChapter,  
        DBASYNCHOP eOperation);  

参数

hChapter[in]
要中止其操作的章节的句柄。 如果所调用的对象不是行集对象,或者操作不适用于章节,则调用方必须将 hChapter 设置为DB_NULL_HCHAPTER。

eOperation[in]
要中止的操作。 其值应为:

DBASYNCHOP_OPEN - 要取消的请求应用于行集的异步打开或填充,或应用于数据源对象的异步初始化。

返回代码值

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::CommitITransaction::Abort 的行集上调用的,并且行集在提交或中止后无法幸存,并且处于僵尸状态。

已对在初始化阶段异步取消的行集调用 ISSAsynchStatus::Abort。 该行集处于僵停状态。

注解

中止行集或数据源对象的初始化可能使行集或数据源对象最后处于僵停状态,以至于除了 IUnknown 方法以外的所有方法都返回 E_UNEXPECTED。 发生这种情况时,使用者的唯一可能操作是释放行集或数据源对象。

如果调用 ISSAsynchStatus::Abort 并为 eOperation 传递除了 DBASYNCHOP_OPEN 以外的值,将返回 S_OK。 这并不意味着操作已完成或取消。

另请参阅

执行异步操作