BeginTrans、CommitTrans 和 RollbackTrans 方法 (ADO)

适用于:Access 2013、Office 2013

以下事务方法用于管理 Connection 对象中的事务处理:

  • BeginTrans - 开始新的事务。

  • CommitTrans - 保存任何更改并结束当前事务。 还可以开始一个新的事务。

  • RollbackTrans - 取消当前事务过程中所做的任何更改并结束事务。 还可以开始一个新的事务。

语法

水平 = 对象。BeginTrans ()

对象。BeginTrans

对象。CommitTrans

对象。RollbackTrans

返回值

BeginTrans 可以作为函数调用,返回一个长整型变量,用以指示事务的嵌套级别。

参数

参数 说明
object Connection 对象。

Connection

如果要将对源数据所做的一系更改列作为一个整体进行保存或取消,那么可以对 Connection 对象使用这些方法。 例如,若要在帐户之间转账,那么可以从一个帐户中减去该笔金额,并在另一个帐户中增加相同的金额。 如果其中任意一个更新失败,那么这两个帐户之间将不再平衡。 若在打开的事务中进行这些更改,即可确保所有更改全部生效或全都无效。

注意

[!注释] 并非所有的提供程序都支持事务。 验证提供程序定义的属性 Transaction DDL 是否出现在 Connection 对象的 Properties 集合中,指示提供程序支持事务。 如果提供程序不支持事务,则调用其中的任一方法将返回错误。

调用 BeginTrans 方法之后,提供程序将不再即时提交所做的更改,直至调用 CommitTransRollbackTrans 结束事务。

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

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

根据 Connection 对象 Attributes 属性的不同,调用 CommitTransRollbackTrans 方法可能会自动启动一个新的事务。 如果 Attributes 属性设置为 adXactCommitRetaining ,那么提供程序会在 CommitTrans 调用之后自动启动一个新的事务。 如果 Attributes 属性设置为 adXactAbortRetaining ,那么提供程序会在 RollbackTrans 调用之后自动启动一个新的事务。

远程数据服务

对于客户端 Connection 对象,BeginTransCommitTransRollbackTrans 方法不可用。