BeginTrans、CommitTrans 和 RollbackTrans 方法 (ADO)
這些交易方法會管理 Connection 物件內的事務處理,如下所示:
BeginTrans 開始新的交易。
CommitTrans 儲存任何變更並結束目前的交易。 它也可能啟動新的交易。
RollbackTrans 取消在目前交易期間所做的任何變更,並結束交易。 它也可能啟動新的交易。
語法
level = object.BeginTrans()
object.BeginTrans
object.CommitTrans
object.RollbackTrans
傳回值
BeginTrans 可以呼叫為函式,此函式會傳回指出交易巢狀層級的 long 變數。
參數
物件
Connection 物件。
連接
當您想要將源數據所做的一系列變更儲存或取消為單一單位時,請搭配 Connection 物件使用這些方法。 例如,若要在帳戶之間轉移資金,您會從其中一個減去金額,並將相同的金額新增至另一個帳戶。 如果任一個更新失敗,帳戶就不會再餘額。 在開啟的交易內進行這些變更可確保所有或沒有任何變更都經過。
注意
並非所有提供者都支援交易。 確認提供者定義的屬性 「Transaction DDL」 出現在 Connection 物件的 Properties 集合中,指出提供者支援交易。 如果提供者不支援交易,則呼叫其中一種方法會傳回錯誤。
呼叫 BeginTrans 方法之後,在您呼叫 CommitTrans 或 RollbackTran s 以結束交易之前,提供者將不再立即認可您所做的變更。
對於支援巢狀交易的提供者,在開啟的交易中呼叫 BeginTrans 方法會啟動新的巢狀交易。 傳回值表示巢狀層級:「1」 的傳回值表示您已開啟最上層交易(也就是說,異動不是在另一筆交易內巢狀),“2”表示您已開啟第二層交易(最上層交易內巢狀的交易),依此類推。 呼叫 CommitTrans 或 RollbackTrans 只會影響最近開啟的交易;您必須先關閉或回復目前的交易,才能解析任何較高層級的交易。
呼叫 CommitTrans 方法會儲存在連接上開啟的交易內所做的變更,並結束交易。 呼叫 RollbackTrans 方法會反轉開啟交易內所做的任何變更,並結束交易。 在沒有開啟的交易時呼叫任一方法會產生錯誤。
根據 Connection 物件的 Attributes 屬性而定,呼叫 CommitTrans 或 RollbackTrans 方法可能會自動啟動新的交易。 如果 Attributes 屬性設定為 adXactCommitRetaining,提供者就會在 CommitTrans 呼叫之後自動啟動新的交易。 如果 Attributes 屬性設定為 adXactAbortRetaining,提供者會在呼叫 rollbackTrans 之後自動啟動新的交易。
遠端數據服務
BeginTrans、CommitTrans和 RollbackTrans 方法無法在用戶端 Connection 物件上使用。
適用於
另請參閱
BeginTrans、CommitTrans 和 RollbackTrans 方法範例 (VB)
BeginTrans、CommitTrans 和 RollbackTrans 方法範例 (VC++)
屬性屬性 (ADO)