OleDbConnection.EnlistDistributedTransaction(ITransaction) 方法

定义

在指定的事务中登记为分布式事务。

public:
 void EnlistDistributedTransaction(System::EnterpriseServices::ITransaction ^ transaction);
public void EnlistDistributedTransaction (System.EnterpriseServices.ITransaction transaction);
member this.EnlistDistributedTransaction : System.EnterpriseServices.ITransaction -> unit
Public Sub EnlistDistributedTransaction (transaction As ITransaction)

参数

transaction
ITransaction

对用于登记的现有 ITransaction 的引用。

注解

ADO.NET 2.0 中的新增功能支持使用 EnlistTransaction 方法在分布式事务中登记。 由于 EnlistTransaction 在实例中Transaction登记连接,因此它利用命名空间中System.Transactions可用于管理分布式事务的功能,因此对于此目的,EnlistDistributedTransaction 更可取。 有关详细信息,请参阅分布式事务

如果禁用了自动登记,则可以继续使用 方法在现有分布式事务 EnlistDistributedTransaction 中登记。 在现有分布式事务中登记可确保如果提交或回滚事务,则代码在数据源中所做的修改也会提交或回滚。 有关分布式事务的详细信息,请参阅 分布式事务

EnlistDistributedTransaction如果 已使用 BeginTransaction启动事务,OleDbConnection则返回异常。 但是,如果事务是在数据源 (启动的本地事务,例如,通过使用 OleDbCommand 对象) 显式执行 BEGIN TRANSACTION 语句, EnlistDistributedTransaction 则回滚本地事务,并按请求在现有分布式事务中登记。 你不会收到本地事务已回滚的通知,并且负责管理未使用 BeginTransaction启动的任何本地事务。

适用于

另请参阅