次の方法で共有


ISSAbort::Abort (OLE DB)

現在の行セットと、現在のコマンドに関連付けられているバッチ コマンドを取り消します。

構文

  
HRESULT Abort(void);  

解説

中止されるコマンドがストアド プロシージャの場合、ストアド プロシージャ (およびそのプロシージャを呼び出したすべてのプロシージャ) の実行と、そのストアド プロシージャの呼び出しが含まれるコマンド バッチの実行が終了します。 サーバーがクライアントに結果セットを転送中の場合、この処理も停止します。 クライアントが結果セットを使用しない場合、行セットを解放する前に ISSAbort::Abort を呼び出すと、行セットの解放が高速になります。ただし、開いているトランザクションがあり、XACT_ABORT が ON の場合、ISSAbort::Abort が呼び出されたときに、トランザクションがロールバックされます。

ISSAbort::Abort がS_OKを返した後、関連付けられた IMultipleResults インターフェイスは使用できない状態になり、(IUnknown インターフェイスによって定義されたメソッドを除く) すべてのメソッド呼び出しにDB_E_CANCELEDを返します。 Abort を呼び出す前に、IMultipleResults から IRowset を取得している場合、これも使用できない状態になり、ISSAbort::Abort の正常な呼び出し後にこのインターフェイスが解放されるまでは、すべてのメソッド呼び出しで DB_E_CANCELED が返されます (ただし、IUnknown インターフェイスと IRowset::ReleaseRows で定義されたメソッドは除きます)。

Note

SQL Server 2005 以降では、サーバー XACT_ABORT状態が ON の場合、ISSAbort::Abort を実行すると、SQL Serverに接続されたときに現在の暗黙的または明示的なトランザクションが終了し、ロールバックされます。 以前のバージョンの SQL Server では、現在のトランザクションは中止されません。

引数

[なし] :

リターン コードの値

S_OK
ISSAbort::Abort メソッドは、バッチが取り消された場合 S_OK を、それ以外の場合 DB_E_CANTCANCEL を返します。 バッチが既に取り消されている場合は、DB_E_CANCELED を返します。

DB_E_CANCELED
バッチは既に取り消されています。

DB_E_CANTCANCEL
バッチは取り消されませんでした。

E_FAIL
プロバイダー固有のエラーが発生しました。詳細については、 ISQLServerErrorInfo インターフェイスを使用してください。

E_UNEXPECTED
メソッドの呼び出しが予期されませんでした。 たとえば、ISSAbort::Abort が既に呼び出されていたために、オブジェクトがゾンビ状態になっている場合などです。

E_OUTOFMEMORY
メモリ不足エラー。

参照

ISSAbort (OLE DB)