共用方式為


IObjectContext::D isableCommit 方法 (comsvcs.h)

宣告物件的交易式更新處於不一致的狀態,且無法在其目前狀態中認可。

Syntax

HRESULT DisableCommit();

傳回值

這個方法可以傳回下列值。

傳回碼 描述
S_OK
已成功完成命令。 物件呼叫 EnableCommitSetComplete 之前,無法認可物件的交易式更新。
E_UNEXPECTED
發生意外錯誤。 如果某個物件將其 IObjectContext 指標傳遞至另一個物件,而另一個物件會使用此指標呼叫 DisableCommit ,就會發生這種情況。 IObjectContext 指標在最初取得它的物件內容之外無效。
CONTEXT_E_NOCONTEXT
目前的對象沒有與其相關聯的內容。 這可能是因為未使用其中一個 COM+ CreateInstance 方法建立。

備註

您可以使用 DisableCommit 方法防止交易在具狀態物件中的方法呼叫之間提前認可。 當物件叫用 DisableCommit 時,它會指出其工作不一致,而且在接收來自客戶端的進一步方法調用之前,無法完成其工作。 它也會指出它必須維持其狀態,才能執行該工作。 這可防止 COM+ 停用物件,並在從方法呼叫傳回時回收其資源。 當物件呼叫 DisableCommit 時,如果客戶端嘗試在物件呼叫 EnableCommitSetComplete 之前認可交易,交易就會中止。

例如,假設您有一個更新資料庫的 GeneralLedger 元件。 用戶端對 GeneralLedger 物件進行多個呼叫,以將專案張貼到各種帳戶。 有一個完整性條件約束,表示當最終方法調用傳回時,轉賬必須等於點數,否則交易必須中止。 GeneralLedger 物件具有初始化方法,用戶端會通知用戶端即將進行的呼叫順序,而 GeneralLedger 物件會呼叫 DisableCommit。 物件會在呼叫之間維持其狀態,如此一來,在進行序列的最後一次呼叫之後,物件可以先確定符合完整性條件約束,再允許認可其工作。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 comsvcs.h

另請參閱

IObjectContext