From: <car...@us...> - 2007-05-18 13:04:43
|
Revision: 256 http://svn.sourceforge.net/firebird/?rev=256&view=rev Author: carlosga_fb Date: 2007-05-18 06:04:42 -0700 (Fri, 18 May 2007) Log Message: ----------- Changes on connection enlistment Modified Paths: -------------- NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbConnection.cs NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbConnectionInternal.cs Modified: NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbConnection.cs =================================================================== --- NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbConnection.cs 2007-05-12 20:21:13 UTC (rev 255) +++ NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbConnection.cs 2007-05-18 13:04:42 UTC (rev 256) @@ -564,6 +564,9 @@ this.innerConnection.Connect(); } + // Enlist the transaction + this.innerConnection.EnlistTransaction(System.Transactions.Transaction.Current); + // Bind Warning messages event this.innerConnection.Database.WarningMessage = new WarningMessageCallback(this.OnWarningMessage); Modified: NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbConnectionInternal.cs =================================================================== --- NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbConnectionInternal.cs 2007-05-12 20:21:13 UTC (rev 255) +++ NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbConnectionInternal.cs 2007-05-18 13:04:42 UTC (rev 256) @@ -223,15 +223,6 @@ DatabaseParameterBuffer dpb = this.BuildDpb(this.db, options); this.db.Attach(dpb, this.options.DataSource, this.options.Port, this.options.Database); - -#if (NET) - - if (this.options.Enlist) - { - this.EnlistTransaction(System.Transactions.Transaction.Current); - } - -#endif } catch (IscException ex) { @@ -350,21 +341,24 @@ #region \xB7 Transaction Enlistement \xB7 -#if (NET ) +#if (NET) public void EnlistTransaction(System.Transactions.Transaction transaction) { - if (this.HasActiveTransaction) + if (this.owningConnection != null && this.options.Enlist) { - throw new ArgumentException("Unable to enlist in transaction, a local transaction already exists"); - } - if (this.enlistmentNotification != null) - { - throw new ArgumentException("Already enlisted in a transaction"); - } + if (this.HasActiveTransaction) + { + throw new ArgumentException("Unable to enlist in transaction, a local transaction already exists"); + } + if (this.enlistmentNotification != null) + { + throw new ArgumentException("Already enlisted in a transaction"); + } - this.enlistmentNotification = new FbEnlistmentNotification(this, transaction); - this.enlistmentNotification.Completed += new EventHandler(EnlistmentCompleted); + this.enlistmentNotification = new FbEnlistmentNotification(this, transaction); + this.enlistmentNotification.Completed += new EventHandler(EnlistmentCompleted); + } } private void EnlistmentCompleted(object sender, EventArgs e) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |