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 或 RollbackTrans 以结束事务。

对于支持嵌套事务的提供程序,在打开的事务中调用 BeginTrans 方法会启动一个新的嵌套事务。 返回值表示嵌套级别:返回值“1”表示你打开了一个顶级事务(即该事务没有嵌套在另一个事务中),“2”表示你打开了一个二级事务(一个嵌套在顶级事务中的事务),等等。 调用 CommitTrans 或 RollbackTrans 仅影响最近打开的事务;必须先关闭或回滚当前事务,然后才能解析任何更高级别的事务。

调用 CommitTrans 方法会保存在连接上的打开事务中所做的更改并结束事务。 调用 RollbackTrans 方法会撤消在打开的事务中所做的更改并结束事务。 在没有打开的事务时调用任一方法都会产生错误。

调用 CommitTrans 或 RollbackTrans 方法可能会自动启动新事务,具体取决于 Connection 对象的 Attributes 属性。 如果 Attributes 属性设置为 adXactCommitRetaining,提供程序会在 CommitTrans 调用后自动启动一个新事务。 如果 Attributes 属性设置为 adXactAbortRetaining,提供程序会在 RollbackTrans 调用后自动启动一个新事务。

远程数据服务

BeginTrans、CommitTrans 和 RollbackTrans 方法在客户端 Connection 对象上不可用。

应用于

连接对象 (ADO)

另请参阅

BeginTrans、CommitTrans 和 RollbackTrans 方法示例 (VB)
BeginTrans、CommitTrans 和 RollbackTrans 方法示例 (VB)
Attributes 属性 (ADO)