次の方法で共有


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
    メモリ不足エラーです。

関連項目

その他の技術情報

ISSAbort (OLE DB)