ISSAsynchStatus (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。
ISSAsynchStatus 公开对 SQL Server 异步操作的支持。 这是从核心 OLE DB 接口 IDBAsynchStatus 继承的可选接口。 除了从 IDBAsynchStatus 继承的 Abort 和 GetStatus 方法外,ISSAsynchStatus 还提供一个新方法,用于在完成异步操作或发生超时前等待 。
方法 | 说明 |
---|---|
ISSAsynchStatus::Abort (OLE DB) | 取消异步执行的操作。 |
ISSAsynchStatus::GetStatus (OLE DB) | 返回异步执行操作的状态。 |
ISSAsynchStatus::WaitForAsynchCompletion (OLE DB) | 一直等待,直到异步执行的操作完成或发生超时。 |
备注
ISSAsynchStatus::GetStatus 方法的 ISSAsynchStatus 实现与 IDBAsynchStatus::GetStatus 方法大体相同,不同之处在于如果中止对数据源对象的初始化,前者将返回 E_UNEXPECTED,而不是 DB_E_CANCELED(但是 ISSAsynchStatus::WaitForAsynchCompletion 将返回 DB_E_CANCELED) 。 这是因为在中止操作后,数据源对象不会仍处于常态,以便进一步尝试初始化操作。
以下方法支持在 SQL Server 中执行异步操作:
ICommand::Execute
IOpenRowset::OpenRowset
IMultipleResults::GetResult