ISSAbort::Abort (OLE DB)
現在の行セットと、現在のコマンドに関連付けられているバッチ コマンドをキャンセルします。
構文
HRESULT Abort(void);
説明
中止されるコマンドがストアド プロシージャの場合、ストアド プロシージャ (およびそのプロシージャを呼び出したすべてのプロシージャ) の実行と、そのストアド プロシージャの呼び出しが含まれるコマンド バッチの実行が終了します。サーバーがクライアントに結果セットを転送中の場合、この処理も停止します。クライアントが結果セットを使用しない場合、行セットを解放する前に ISSAbort::Abort を呼び出すと、行セットの解放が高速になります。ただし、開いているトランザクションがあり、XACT_ABORT が ON の場合、ISSAbort::Abort が呼び出されたときに、トランザクションがロールバックされます。
ISSAbort::Abort が S_OK を返すと、関連する IMultipleResults インターフェイスは使用できない状態になり、このインターフェイスが解放されるまで、すべてのメソッド呼び出しに DB_E_CANCELED が返されます (ただし IUnknown インターフェイスで定義されたメソッドは除きます)。Abort を呼び出す前に、IMultipleResults から IRowset を取得している場合、これも使用できない状態になり、ISSAbort::Abort の正常な呼び出し後にこのインターフェイスが解放されるまでは、すべてのメソッド呼び出しで DB_E_CANCELED が返されます (ただし、IUnknown インターフェイスと IRowset::ReleaseRows で定義されたメソッドは除きます)。
注意 |
---|
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
メモリ不足エラーです。