次の方法で共有


ISSAbort::Abort (OLE DB)

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

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

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

OLE DB Driver for SQL Server が公開する ISSAbort インターフェイスは、ISSAbort::Abort メソッドを提供します。このメソッドは、現在の行セットを取り消したうえで、この行セットを最初に生成したコマンドを含んでいるバッチ コマンドのうち、実行が完了していないのものを取り消す場合に使用します。

ISSAbort は、OLE DB Driver for SQL Server 固有のインターフェイスです。これを使用するには、ICommand::Execute または IOpenRowset::OpenRowset により返される IMultipleResults オブジェクトの QueryInterface を使用します。

構文

  
HRESULT Abort(void);  

解説

中止されるコマンドがストアド プロシージャの場合、ストアド プロシージャ (およびそのプロシージャを呼び出したすべてのプロシージャ) の実行と、そのストアド プロシージャの呼び出しが含まれるコマンド バッチの実行が終了します。 サーバーがクライアントに結果セットを転送中の場合、この転送も停止します。 クライアントで結果セットの使用が望まれない場合、**ISSAbort::Abortbefore releasing the rowset will speed up the rowset release, but if there is an open transaction and XACT_ABORT is ON, the transaction will be rolled back whenISSAbort::Abort` の呼び出しが取り消されます

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

注意

SQL Server 2005 (9.x) 以降のバージョンでは、サーバーの 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
メモリ不足エラー。