Author: gbayon
Date: Mon Sep 19 10:53:22 2005
New Revision: 290217

URL: http://svn.apache.org/viewcvs?rev=290217&view=rev
Log:
- Allow BeginTransaction to use a specific connectionstrings

Modified:
    ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs
    
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs
    
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs
    ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs

Modified: ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs?rev=290217&r1=290216&r2=290217&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.Common/IDalSession.cs Mon Sep 19 10:53:22 
2005
@@ -89,17 +89,39 @@
                void BeginTransaction();
 
                /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               void BeginTransaction(string connectionString);
+
+               /// <summary>
                /// Begins a database transaction
                /// </summary>
                /// <param name="openConnection">Open a connection.</param>
                void BeginTransaction(bool openConnection);
 
                /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               void BeginTransaction(string connectionString, IsolationLevel 
isolationLevel);
+
+               /// <summary>
                /// Open a connection and begin a transaction at the data 
source 
                /// with the specified IsolationLevel value.
                /// </summary>
                /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
                void BeginTransaction(IsolationLevel isolationLevel);
+
+               /// <summary>
+               /// Begins a transaction on the current connection
+               /// with the specified IsolationLevel value.
+               /// </summary>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="openConnection">Open a connection.</param>
+               void BeginTransaction(string connectionString, bool 
openConnection, IsolationLevel isolationLevel);
 
                /// <summary>
                /// Begins a transaction on the current connection

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs?rev=290217&r1=290216&r2=290217&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSession.cs Mon Sep 19 
10:53:22 2005
@@ -115,6 +115,12 @@
                public abstract void BeginTransaction();
 
                /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               public abstract void BeginTransaction(string connectionString);
+
+               /// <summary>
                /// Begins a database transaction
                /// </summary>
                /// <param name="openConnection">Open a connection.</param>
@@ -127,12 +133,28 @@
                public abstract void BeginTransaction(IsolationLevel 
isolationLevel);
 
                /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               public abstract void BeginTransaction(string connectionString, 
IsolationLevel isolationLevel);
+
+               /// <summary>
                /// Begins a transaction on the current connection
                /// with the specified IsolationLevel value.
                /// </summary>
                /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
                /// <param name="openConnection">Open a connection.</param>
                public abstract void BeginTransaction(bool openConnection, 
IsolationLevel isolationLevel);
+
+               /// <summary>
+               /// Begins a transaction on the current connection
+               /// with the specified IsolationLevel value.
+               /// </summary>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="openConnection">Open a connection.</param>
+               public abstract void BeginTransaction(string connectionString, 
bool openConnection, IsolationLevel isolationLevel);
 
                /// <summary>
                /// Commits the database transaction.

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs?rev=290217&r1=290216&r2=290217&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SimpleDaoSession.cs
 Mon Sep 19 10:53:22 2005
@@ -194,10 +194,18 @@
                /// </remarks>
                public override void BeginTransaction()
                {
+                       this.BeginTransaction( _dataSource.ConnectionString );
+               }
 
+               /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               public override void BeginTransaction(string connectionString)
+               {
                        if (_connection == null || _connection.State != 
ConnectionState.Open)
                        {
-                               OpenConnection();
+                               this.OpenConnection( connectionString );
                        }
                        _transaction = _connection.BeginTransaction();
                        if (_logger.IsDebugEnabled)
@@ -238,16 +246,26 @@
                /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
                public override void BeginTransaction(IsolationLevel 
isolationLevel)
                {
+                       this.BeginTransaction( _dataSource.ConnectionString, 
isolationLevel );
+               }
+
+               /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               public override void BeginTransaction(string connectionString, 
IsolationLevel isolationLevel)
+               {
                        if (_connection == null || _connection.State != 
ConnectionState.Open)
                        {
-                               OpenConnection();
+                               this.OpenConnection( connectionString );
                        }
                        _transaction = 
_connection.BeginTransaction(isolationLevel);
                        if (_logger.IsDebugEnabled)
                        {
                                _logger.Debug("Begin Transaction.");
                        }
-                       _isOpenTransaction = true;
+                       _isOpenTransaction = true;                      
                }
 
                /// <summary>
@@ -255,12 +273,24 @@
                /// with the specified IsolationLevel value.
                /// </summary>
                /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
-               /// <param name="openConnection">Open a connection.</param>
+               /// <param name="openConnection">Open the connection ?</param>
                public override void BeginTransaction(bool openConnection, 
IsolationLevel isolationLevel)
                {
+                       this.BeginTransaction( _dataSource.ConnectionString, 
openConnection, isolationLevel );
+               }
+
+               /// <summary>
+               /// Begins a transaction on the current connection
+               /// with the specified IsolationLevel value.
+               /// </summary>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="openConnection">Open a connection.</param>
+               public override void BeginTransaction(string connectionString, 
bool openConnection, IsolationLevel isolationLevel)
+               {
                        if (openConnection)
                        {
-                               this.BeginTransaction(isolationLevel);
+                               this.BeginTransaction(connectionString, 
isolationLevel);
                        }
                        else
                        {
@@ -274,7 +304,7 @@
                                        _logger.Debug("Begin Transaction.");
                                }       
                                _isOpenTransaction = true;
-                       }
+                       }                       
                }
 
                /// <summary>

Modified: 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs?rev=290217&r1=290216&r2=290217&view=diff
==============================================================================
--- 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs
 (original)
+++ 
ibatis/trunk/cs/mapper/IBatisNet.DataAccess/DaoSessionHandlers/SqlMapDaoSession.cs
 Mon Sep 19 10:53:22 2005
@@ -130,7 +130,6 @@
                        _sqlMap.CloseConnection();
                }
 
-
                /// <summary>
                /// Begins a transaction.
                /// </summary>
@@ -140,6 +139,15 @@
                }
 
                /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               public override void BeginTransaction(string connectionString)
+               {
+                       _sqlMap.BeginTransaction( connectionString );           
+               }
+
+               /// <summary>
                /// Begins a database transaction
                /// </summary>
                /// <param name="openConnection">Open a connection.</param>
@@ -158,6 +166,16 @@
                }
 
                /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               public override void BeginTransaction(string connectionString, 
IsolationLevel isolationLevel)
+               {
+                       _sqlMap.BeginTransaction ( connectionString, 
isolationLevel );
+               }
+
+               /// <summary>
                /// Begins a transaction on the current connection
                /// with the specified IsolationLevel value.
                /// </summary>
@@ -166,6 +184,18 @@
                public override void BeginTransaction(bool openConnection, 
IsolationLevel isolationLevel)
                {
                        _sqlMap.BeginTransaction(openConnection, 
isolationLevel);
+               }
+
+               /// <summary>
+               /// Begins a transaction on the current connection
+               /// with the specified IsolationLevel value.
+               /// </summary>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="openConnection">Open a connection.</param>
+               public override void BeginTransaction(string connectionString, 
bool openConnection, IsolationLevel isolationLevel)
+               {
+                       _sqlMap.BeginTransaction( connectionString, 
openConnection, isolationLevel );
                }
 
                /// <summary>

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs?rev=290217&r1=290216&r2=290217&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapSession.cs Mon Sep 19 
10:53:22 2005
@@ -211,9 +211,18 @@
                /// </summary>
                public void BeginTransaction()
                {
+                       this.BeginTransaction(_dataSource.ConnectionString);
+               }
+
+               /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               public void BeginTransaction(string connectionString)
+               {
                        if (_connection == null || _connection.State != 
ConnectionState.Open)
                        {
-                               OpenConnection();
+                               this.OpenConnection( connectionString );
                        }
                        _transaction = _connection.BeginTransaction();
                        if (_logger.IsDebugEnabled)
@@ -256,16 +265,26 @@
                /// </param>
                public void BeginTransaction(IsolationLevel isolationLevel)
                {
+                       this.BeginTransaction(_dataSource.ConnectionString, 
isolationLevel);
+               }
+
+               /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               public void BeginTransaction(string connectionString, 
IsolationLevel isolationLevel)
+               {
                        if (_connection == null || _connection.State != 
ConnectionState.Open)
                        {
-                               OpenConnection();
+                               this.OpenConnection( connectionString );
                        }
                        _transaction = 
_connection.BeginTransaction(isolationLevel);
                        if (_logger.IsDebugEnabled)
                        {
                                _logger.Debug("Begin Transaction.");
                        }
-                       _isOpenTransaction = true;
+                       _isOpenTransaction = true;                      
                }
 
                /// <summary>
@@ -276,9 +295,21 @@
                /// <param name="openConnection">Open a connection.</param>
                public void BeginTransaction(bool openConnection, 
IsolationLevel isolationLevel)
                {
+                       this.BeginTransaction(_dataSource.ConnectionString, 
openConnection, isolationLevel);
+               }
+
+               /// <summary>
+               /// Begins a transaction on the current connection
+               /// with the specified IsolationLevel value.
+               /// </summary>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="openConnection">Open a connection.</param>
+               public void BeginTransaction(string connectionString, bool 
openConnection, IsolationLevel isolationLevel)
+               {
                        if (openConnection)
                        {
-                               this.BeginTransaction(isolationLevel);
+                               this.BeginTransaction( connectionString, 
isolationLevel );
                        }
                        else
                        {
@@ -292,9 +323,8 @@
                                        _logger.Debug("Begin Transaction.");
                                }
                                _isOpenTransaction = true;
-                       }
+                       }                       
                }
-
 
                /// <summary>
                /// Commits the database transaction.

Modified: ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs?rev=290217&r1=290216&r2=290217&view=diff
==============================================================================
--- ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs (original)
+++ ibatis/trunk/cs/mapper/IBatisNet.DataMapper/SqlMapper.cs Mon Sep 19 
10:53:22 2005
@@ -354,6 +354,22 @@
                }
 
                /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               public IDalSession BeginTransaction(string connectionString)
+               {
+                       if (_sessionHolder.LocalSession != null) 
+                       {
+                               throw new DataMapperException("SqlMap could not 
invoke BeginTransaction(). A Transaction is already started. Call 
CommitTransaction() or RollbackTransaction first.");
+                       }
+                       SqlMapSession session = new SqlMapSession(this);
+                       _sessionHolder.Store(session);
+                       session.BeginTransaction( connectionString );
+                       return session ;
+               }
+
+               /// <summary>
                /// Begins a database transaction on the currect session
                /// </summary>
                /// <param name="openConnection">Open a connection.</param>
@@ -397,6 +413,23 @@
                }
 
                /// <summary>
+               /// Open a connection and begin a transaction on the specified 
connection string.
+               /// </summary>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               public IDalSession BeginTransaction(string connectionString, 
IsolationLevel isolationLevel)
+               {
+                       if (_sessionHolder.LocalSession != null) 
+                       {
+                               throw new DataMapperException("SqlMap could not 
invoke BeginTransaction(). A Transaction is already started. Call 
CommitTransaction() or RollbackTransaction first.");
+                       }
+                       SqlMapSession session = new SqlMapSession(this);
+                       _sessionHolder.Store(session);
+                       session.BeginTransaction( connectionString, 
isolationLevel);
+                       return session;
+               }
+
+               /// <summary>
                /// Start a database transaction on the current session
                /// with the specified isolation level.
                /// </summary>
@@ -420,6 +453,33 @@
                                        throw new DataMapperException("SqlMap 
could not invoke BeginTransaction(). A session must be Open. Call 
OpenConnection() first.");
                                }
                                session.BeginTransaction(openConnection, 
isolationLevel);
+                       }
+                       return session;
+               }
+
+               /// <summary>
+               /// Begins a transaction on the current connection
+               /// with the specified IsolationLevel value.
+               /// </summary>
+               /// <param name="isolationLevel">The transaction isolation 
level for this connection.</param>
+               /// <param name="connectionString">The connection string</param>
+               /// <param name="openConnection">Open a connection.</param>
+               public IDalSession BeginTransaction(string connectionString, 
bool openConnection, IsolationLevel isolationLevel)
+               {
+                       IDalSession session = null;
+
+                       if (openConnection)
+                       {
+                               session = 
this.BeginTransaction(connectionString, isolationLevel);
+                       }
+                       else
+                       {
+                               session = _sessionHolder.LocalSession;
+                               if (session == null) 
+                               {
+                                       throw new DataMapperException("SqlMap 
could not invoke BeginTransaction(). A session must be Open. Call 
OpenConnection() first.");
+                               }
+                               session.BeginTransaction(connectionString, 
openConnection, isolationLevel);
                        }
                        return session;
                }


Reply via email to