ISSAbort::Abort (OLE DB)

適用於:SQL Server Azure SQL 資料 Azure SQL 受控執行個體 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::ExecuteIOpenRowset::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,它也會進入無法使用狀態,並將 DB_E_CANCELED 傳回到所有方法呼叫 (除了 IUnknown 介面和 IRowset::ReleaseRows 所定義的方法以外),直到成功呼叫 ISSAbort::Abort 後釋放它為止。

注意

從 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
記憶體不足的錯誤。