protected override Common.DbTransaction BeginDbTransaction(IsolationLevel isolationLevel) { if (state == ConnectionState.Closed) { throw new InvalidOperationException("The connection is not open."); } if (transaction != null) { throw new InvalidOperationException("OracleConnection does not support parallel transactions."); } OciTransactionHandle transactionHandle = oci.CreateTransaction(); if (transactionHandle == null) { throw new Exception("Error: Unable to start transaction"); } else { transactionHandle.Begin(); transaction = new OracleTransaction(this, isolationLevel, transactionHandle); } return(transaction); }
internal OracleTransaction(OracleConnection connection, IsolationLevel isolevel, OciTransactionHandle transaction) { this.connection = connection; this.isolationLevel = isolevel; this.transaction = transaction; isOpen = true; }
public OciTransactionHandle CreateTransaction() { OciTransactionHandle transaction = (OciTransactionHandle)environment.Allocate(OciHandleType.Transaction); if (transaction == null) { OciErrorInfo info = environment.HandleError(); throw new OracleException(info.ErrorCode, info.ErrorMessage); } transaction.ErrorHandle = error; transaction.Service = service; return(transaction); }