From: <car...@us...> - 2007-04-29 20:35:18
|
Revision: 167 http://svn.sourceforge.net/firebird/?rev=167&view=rev Author: carlosga_fb Date: 2007-04-29 13:35:20 -0700 (Sun, 29 Apr 2007) Log Message: ----------- 2007-04-29 Carlos Guzm?\195?\161n ?\195?\129lvarez <car...@gm...> * FirebirdSql\Data\FirebirdClient\FbCommand.cs: - Minor improvements done on command disposing. Modified Paths: -------------- NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbCommand.cs Modified: NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbCommand.cs =================================================================== --- NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbCommand.cs 2007-04-29 20:31:25 UTC (rev 166) +++ NETProvider/trunk/NETProvider/source/FirebirdSql/Data/FirebirdClient/FbCommand.cs 2007-04-29 20:35:20 UTC (rev 167) @@ -399,28 +399,25 @@ { try { - // If there are an active reader close it - this.CloseReader(); - // Release any unmanaged resources this.Release(); // release any managed resources - if (disposing) - { - this.commandTimeout = 0; - this.fetchSize = 0; - this.implicitTransaction = false; - this.commandText = null; - this.connection = null; - this.transaction = null; - this.parameters = null; - this.statement = null; - this.activeReader = null; + this.commandTimeout = 0; + this.fetchSize = 0; + this.implicitTransaction = false; + this.commandText = null; + this.connection = null; + this.transaction = null; + this.parameters = null; + this.statement = null; + this.activeReader = null; - this.namedParameters.Clear(); - this.namedParameters = null; - } + if (this.namedParameters != null) + { + this.namedParameters.Clear(); + this.namedParameters = null; + } this.disposed = true; } @@ -798,13 +795,19 @@ internal void Release() { + // Rollback implicit transaction this.RollbackImplicitTransaction(); + // If there are an active reader close it + this.CloseReader(); + + // Remove the command from the Prepared commands list if (this.connection != null && this.connection.State == ConnectionState.Open) { this.connection.InnerConnection.RemovePreparedCommand(this); } + // Dipose the inner statement if (this.statement != null) { this.statement.Dispose(); @@ -1104,10 +1107,8 @@ } else { - this.implicitTransaction = true; - IsolationLevel il = this.connection.ConnectionOptions.IsolationLevel; - - this.transaction = new FbTransaction(this.connection, il); + this.implicitTransaction = true; + this.transaction = new FbTransaction(this.connection, this.connection.ConnectionOptions.IsolationLevel); this.transaction.BeginTransaction(); // Update Statement transaction This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |