此頁沒有內(nèi)容條目
內(nèi)容

   

這些事務(wù)方法按如下方式管理 Connection 對象中的事務(wù)進(jìn)程:

?BeginTrans - 開始新事務(wù)。

 

?CommitTrans - 保存任何更改并結(jié)束當(dāng)前事務(wù)。它也可能啟動新事務(wù)。

 

?RollbackTrans - 取消當(dāng)前事務(wù)中所作的任何更改并結(jié)束事務(wù)。它也可能啟動新事務(wù)。

語法

level = object.BeginTrans()

object.BeginTrans

object.CommitTrans

object.RollbackTrans

返回值

BeginTrans 可以作為函數(shù)調(diào)用,用于返回指示事務(wù)嵌套層次的長整型變量。

參數(shù)

object   Connection 對象。

Connection

如果希望以獨立單元保存或取消對源數(shù)據(jù)所做的一系列更改,請使用這些具有 Connection 對象的方法。例如在貨幣轉(zhuǎn)帳時,必須從帳戶中減去某個數(shù)額并將其對等數(shù)額添加到另一個帳戶。無論其中的哪個更新失敗,都將導(dǎo)致帳戶收支不平衡。在打開的事務(wù)中進(jìn)行這些更改可確保只能選擇進(jìn)行全部更改或不作任何更改。

注意   并非所有提供者都支持事務(wù)。需驗證提供者定義的屬性“Transaction DDL”是否出現(xiàn)在 Connection 對象的 Properties 集合中,如果在則表示提供者支持事務(wù)。如果提供者不支持事務(wù),調(diào)用其中的某個方法將返回錯誤。

一旦調(diào)用了 BeginTrans 方法,在調(diào)用 CommitTrans RollbackTrans 結(jié)束事務(wù)之前,提供者將不再立即提交所作的任何更改。

對于支持嵌套事務(wù)的提供者來說,調(diào)用已打開事務(wù)中的 BeginTrans 方法將開始新的嵌套事務(wù)。返回值將指示嵌套層次:返回值為 1 表示已打開頂層事務(wù)(即事務(wù)不被另一個事務(wù)所嵌套),返回值為 2 表示已打開第二層事務(wù)(嵌套在頂層事務(wù)中的事務(wù)),依次類推。調(diào)用 CommitTrans RollbackTrans 只影響最新打開的事務(wù);在處理任何更高層事務(wù)之前必須關(guān)閉或回卷當(dāng)前事務(wù)。

調(diào)用 CommitTrans 方法將保存連接上打開的事務(wù)中所做的更改并結(jié)束事務(wù)。調(diào)用 RollbackTrans 方法還原打開事務(wù)中所做的更改并結(jié)束事務(wù)。在未打開事務(wù)時調(diào)用其中任何一種方法都將引發(fā)錯誤。

取決于 Connection 對象的 Attributes 屬性,調(diào)用 CommitTrans RollbackTrans 方法都可以自動啟動新事務(wù)。如果 Attributes 屬性設(shè)置為 adXactCommitRetaining,提供者在 CommitTrans 調(diào)用后會自動啟動新事務(wù)。如果 Attributes 屬性設(shè)置為 adXactAbortRetaining,提供者在調(diào)用 RollbackTrans 之后將自動啟動新事務(wù)。

遠(yuǎn)程數(shù)據(jù)服務(wù)

BeginTrans、CommitTransRollbackTrans 方法在客戶端 Connection 對象上無效。