/// <summary> /// Initializes a new instance of the <see cref="OleDbSqlServerTransactionalDataSource"/> class. /// </summary> /// <param name="dataSource">The parent connection.</param> /// <param name="transactionName">Name of the transaction.</param> /// <param name="isolationLevel">The isolation level. If not supplied, will use the database default.</param> /// <param name="forwardEvents">If true, logging events are forwarded to the parent connection.</param> public OleDbSqlServerTransactionalDataSource(OleDbSqlServerDataSource dataSource, string transactionName, IsolationLevel?isolationLevel, bool forwardEvents) : base(new SqlServerDataSourceSettings() { DefaultCommandTimeout = dataSource.DefaultCommandTimeout, StrictMode = dataSource.StrictMode, SuppressGlobalEvents = dataSource.SuppressGlobalEvents || forwardEvents }) { Name = dataSource.Name; m_BaseDataSource = dataSource; m_Connection = dataSource.CreateConnection(); m_TransactionName = transactionName; if (isolationLevel == null) { m_Transaction = m_Connection.BeginTransaction(); } else { m_Transaction = m_Connection.BeginTransaction(isolationLevel.Value); } if (forwardEvents) { ExecutionStarted += (sender, e) => dataSource.OnExecutionStarted(e); ExecutionFinished += (sender, e) => dataSource.OnExecutionFinished(e); ExecutionError += (sender, e) => dataSource.OnExecutionError(e); ExecutionCanceled += (sender, e) => dataSource.OnExecutionCanceled(e); } AuditRules = dataSource.AuditRules; UserValue = dataSource.UserValue; }
/// <summary> /// Initializes a new instance of the <see cref="OleDbSqlServerTransactionalDataSource"/> class. /// </summary> /// <param name="dataSource">The parent connection.</param> /// <param name="transactionName">Name of the transaction.</param> /// <param name="isolationLevel">The isolation level. If not supplied, will use the database default.</param> /// <param name="forwardEvents">If true, logging events are forwarded to the parent connection.</param> public OleDbSqlServerTransactionalDataSource(OleDbSqlServerDataSource dataSource, string?transactionName, IsolationLevel?isolationLevel, bool forwardEvents) : base(new SqlServerDataSourceSettings(dataSource, forwardEvents)) { Name = dataSource.Name; m_BaseDataSource = dataSource; m_Connection = dataSource.CreateConnection(); TransactionName = transactionName; if (isolationLevel == null) { m_Transaction = m_Connection.BeginTransaction(); } else { m_Transaction = m_Connection.BeginTransaction(isolationLevel.Value); } if (forwardEvents) { ExecutionStarted += (sender, e) => dataSource.OnExecutionStarted(e); ExecutionFinished += (sender, e) => dataSource.OnExecutionFinished(e); ExecutionError += (sender, e) => dataSource.OnExecutionError(e); ExecutionCanceled += (sender, e) => dataSource.OnExecutionCanceled(e); } AuditRules = dataSource.AuditRules; UserValue = dataSource.UserValue; }