/// <summary>トランザクション開始</summary> /// <param name="iso">分離レベル(DB2に同じ) /// </param> public override void BeginTransaction(DbEnum.IsolationLevelEnum iso) { // 分離レベル設定のチェック if (iso == DbEnum.IsolationLevelEnum.NoTransaction) { // トランザクションを開始しない(nullのまま)。 } else if (iso == DbEnum.IsolationLevelEnum.DefaultTransaction) { // 規定の分離レベルでトランザクションを開始する。 this._tx = this._cnn.BeginTransaction(); } else if (iso == DbEnum.IsolationLevelEnum.ReadUncommitted) { // 非コミット読み取りの分離レベルでトランザクションを開始する。 this._tx = this._cnn.BeginTransaction(IsolationLevel.ReadUncommitted); } else if (iso == DbEnum.IsolationLevelEnum.ReadCommitted) { // コミット済み読み取りの分離レベルでトランザクションを開始する。 this._tx = this._cnn.BeginTransaction(IsolationLevel.ReadCommitted); } else if (iso == DbEnum.IsolationLevelEnum.RepeatableRead) { // 反復可能読み取りの分離レベルでトランザクションを開始する。 this._tx = this._cnn.BeginTransaction(IsolationLevel.RepeatableRead); } else if (iso == DbEnum.IsolationLevelEnum.Serializable) { // 直列化可能の分離レベルでトランザクションを開始する。 this._tx = this._cnn.BeginTransaction(IsolationLevel.Serializable); } else if (iso == DbEnum.IsolationLevelEnum.Snapshot) { // 無効な分離レベル(スナップ ショット分離レベル)。 throw new ArgumentException(String.Format( PublicExceptionMessage.DB_ISO_LEVEL_PARAM_ERROR_SS, "HiRDB")); } else if (iso == DbEnum.IsolationLevelEnum.User) { // 無効な分離レベル(ユーザ指定)。 throw new ArgumentException( PublicExceptionMessage.DB_ISO_LEVEL_PARAM_ERROR_USR); } else if (iso == DbEnum.IsolationLevelEnum.NotConnect) { // 2009/03/29 -- 追加したNotConnectの対応(このコードブロック)。 // 無効な分離レベル(NotConnect指定)。 throw new ArgumentException( PublicExceptionMessage.DB_ISO_LEVEL_PARAM_ERROR_NC); } else { // 通らない予定 } // 分離レベル(iso)をメンバ変数に保存 _iso = iso; }
/// <summary>トランザクションのロールバック</summary> /// <remarks>必要に応じて利用する。</remarks> public override void RollbackTransaction() { // Txオブジェクトの存在チェック if (this._tx == null) { // nullのためなにもしない。 } else { // トランザクションのロールバック this._tx.Rollback(); // nullクリア this._tx = null; } }
/// <summary>トランザクションのコミット</summary> /// <remarks>必要に応じて利用する。</remarks> public override void CommitTransaction() { // Txオブジェクトの存在チェック if (this._tx == null) { // nullのためなにもしない。 } else { // トランザクションのコミット this._tx.Commit(); // nullクリア this._tx = null; } }