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,它也會進入無法使用狀態,並將 DB_E_CANCELED 傳回到所有方法呼叫 (除了 IUnknown 介面和 IRowset::ReleaseRows 所定義的方法以外),直到成功呼叫 ISSAbort::Abort 後釋放它為止。
[!附註]
從 SQL Server 2005 開始,如果伺服器 XACT_ABORT 狀態為 ON,連接到 SQL Server 時,執行 ISSAbort::Abort 將會結束,而且會回復任何目前隱含或明確的交易。舊版 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
記憶體不足的錯誤。