2 // OracleTransaction.cs
4 // Part of the Mono class libraries at
5 // mcs/class/System.Data.OracleClient/System.Data.OracleClient
7 // Assembly: System.Data.OracleClient.dll
8 // Namespace: System.Data.OracleClient
10 // Author: Tim Coleman <tim@timcoleman.com>
12 // Copyright (C) Tim Coleman, 2003
14 // Licensed under the MIT/X11 License.
18 using System.ComponentModel;
20 using System.Data.OracleClient.Oci;
22 namespace System.Data.OracleClient
24 public sealed class OracleTransaction :
28 MarshalByRefObject, IDbTransaction, IDisposable
33 OracleConnection connection;
34 IsolationLevel isolationLevel;
35 bool disposed = false;
36 OciTransactionHandle transaction;
43 internal OracleTransaction (OracleConnection connection, IsolationLevel isolevel, OciTransactionHandle transaction)
45 this.connection = connection;
46 this.isolationLevel = isolevel;
47 this.transaction = transaction;
51 #endregion // Constructors
55 internal bool IsOpen {
56 get { return isOpen; }
63 OracleConnection Connection {
64 get { return connection; }
69 protected override Common.DbConnection DbConnection {
70 get { return Connection; }
78 IsolationLevel IsolationLevel {
79 get { return isolationLevel; }
83 IDbConnection IDbTransaction.Connection {
84 get { return Connection; }
88 #endregion // Properties
92 internal void AttachToServiceContext ()
94 transaction.AttachToServiceContext ();
103 transaction.Commit ();
104 Connection.Transaction = null;
111 void Dispose (bool disposing)
118 transaction.Dispose();
125 public void Dispose ()
128 GC.SuppressFinalize (this);
138 transaction.Rollback ();
139 Connection.Transaction = null;
143 #endregion // Methods