次の方法で共有


ISSAsynchStatus::Abort (OLE DB)

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

OLE DB ドライバーのダウンロード

非同期に実行されている操作を取り消します。

構文

  
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
IDBInitialize::Initialize が呼び出されていないか、完了していないデータ ソース オブジェクトに対して ISSAsynchStatus::Abort が呼び出されました。

ISSAsynchStatus::Abort が呼び出されたものの、その後初期化前に取り消されたか、タイムアウトになったデータ ソース オブジェクトに対して IDBInitialize::Initialize が呼び出されました。データ ソース オブジェクトはまだ初期化されていません。

以前に ITransaction::Commit または ITransaction::Abort が呼び出された行セットに対して ISSAsynchStatus::Abort が呼び出された場合もこの値が返されます。この行セットはコミットまたはアボートの後に保持されず、ゾンビ状態になります。

初期化フェーズで非同期に取り消された行セットに対して ISSAsynchStatus::Abort が呼び出された場合も、この値が返されます。 行セットはゾンビ状態になります。

解説

行セットまたはデータ ソース オブジェクトの初期化を中止すると、その行セットまたはデータ ソース オブジェクトはゾンビ状態になり、IUnknown メソッド以外のすべてのメソッドから E_UNEXPECTED が返されます。 この状態になると、コンシューマーはその行セットまたはデータ ソース オブジェクトの解放しか実行できません。

eOperation に DBASYNCHOP_OPEN 以外の値を渡して ISSAsynchStatus::Abort を呼び出すと、S_OK が返されます。 この値は操作が完了したか取り消されたことを示すわけではありません。

参照

非同期操作の実行