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 {
23 public sealed class OracleTransaction : MarshalByRefObject, IDbTransaction, IDisposable
27 OracleConnection connection;
28 IsolationLevel isolationLevel;
29 bool disposed = false;
30 OciTransactionHandle transaction;
37 internal OracleTransaction (OracleConnection connection, IsolationLevel isolevel, OciTransactionHandle transaction)
39 this.connection = connection;
40 this.isolationLevel = isolevel;
41 this.transaction = transaction;
45 #endregion // Constructors
49 internal bool IsOpen {
50 get { return isOpen; }
53 public OracleConnection Connection {
54 get { return connection; }
57 public IsolationLevel IsolationLevel {
58 get { return isolationLevel; }
61 IDbConnection IDbTransaction.Connection {
62 get { return Connection; }
65 #endregion // Properties
69 internal void AttachToServiceContext ()
71 transaction.AttachToServiceContext ();
76 transaction.Commit ();
77 Connection.Transaction = null;
81 private void Dispose (bool disposing)
88 transaction.Dispose();
94 public void Dispose ()
97 GC.SuppressFinalize (this);
100 public void Rollback ()
102 transaction.Rollback ();
103 Connection.Transaction = null;
107 #endregion // Methods