Example #1
0
 /// <summary>コンストラクタ</summary>
 public DaoCategories(BaseDam dam) : base(dam) { }
Example #2
0
 /// <summary>コンストラクタ</summary>
 public Daots_test_table3(BaseDam dam) : base(dam) { }
Example #3
0
 /// <summary>コンストラクタ</summary>
 public DaoShippers(BaseDam dam) : base(dam) { }
 /// <summary>コンストラクタ</summary>
 public DaoT_WorkflowHistory(BaseDam dam) : base(dam) { }
        /// <summary>Damの初期化</summary>
        private void InitDam()
        {
            // Initializes dam
            this._dam = new DamSqlSvr();
            this._dam.Obj = new MyUserInfo("WorkflowTest", "127.0.0.1");

            // Gets the connection string from config and open the db connection
            this._dam.ConnectionOpen(GetConfigParameter.GetConnectionString("ConnectionString_SQL"));
            this._dam.BeginTransaction(DbEnum.IsolationLevelEnum.ReadCommitted);
        }
 /// <summary>コンストラクタ</summary>
 public DaoT_CurrentWorkflow(BaseDam dam) : base(dam) { }
Example #7
0
 /// <summary>AsyncProcessingService用B層</summary>
 /// <param name="dam">dam</param>
 public LayerD(BaseDam dam) : base(dam) { }
Example #8
0
        /// <summary>Damの初期化</summary>
        private void InitDam()
        {
            // 現状SQLServerのみ対応
            this._dam = new DamSqlSvr();
            this._dam.Obj = new MyUserInfo("Workflow_Tool", "127.0.0.1");

            this._dam.ConnectionOpen(this.txtCnnstr.Text);
            this._dam.BeginTransaction(DbEnum.IsolationLevelEnum.ReadCommitted);
        }
Example #9
0
 /// <summary>コンストラクタ</summary>
 public DaoProducts(BaseDam dam) : base(dam) { }
Example #10
0
 /// <summary>コンストラクタ</summary>
 public DaoOrder_Details(BaseDam dam) : base(dam) { }
Example #11
0
        // #14,15,23-start

        #region メソッド

        /// <summary>データアクセス制御クラス(DAM)を初期化する</summary>
        /// <param name="TransactionPatternID">トランザクション パターンID</param>
        /// <param name="dam">データアクセス制御クラス(DAM)インスタンス</param>
        public void InitDam(string TransactionPatternID, BaseDam dam)
        {
            // トランザクション制御情報を取得
            string connectionString;
            DbEnum.IsolationLevelEnum isolevel;

            // 接続文字列, 分離レベルを取得
            this.GetTCInfo(TransactionPatternID, out connectionString, out isolevel);

            if (isolevel == DbEnum.IsolationLevelEnum.NotConnect)
            {
                // コネクションを接続しない。
            }
            else
            {
                // コネクションを初期化する。
                dam.ConnectionOpen(connectionString);

                if (isolevel == DbEnum.IsolationLevelEnum.NoTransaction)
                {
                    // トランザクションを開始しない。
                }
                else
                {
                    // トランザクションを開始する。
                    dam.BeginTransaction(isolevel);
                }
            }
        }
Example #12
0
 /// <summary>コンストラクタ</summary>
 public DaoEmployees(BaseDam dam) : base(dam) { }
Example #13
0
 /// <summary>コンストラクタ</summary>
 public DaoTerritories(BaseDam dam) : base(dam) { }
Example #14
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <remarks>
 /// コンストラクタは継承されないので、派生先で呼び出す必要がある。
 /// コンストラクタの実行順は、基本クラス→派生クラスの順
 /// ※ VB.NET では、MyBase.New() を派生クラスのコンストラクタから呼ぶ。
 /// 自由に利用できる。
 /// </remarks>
 public MyBaseDao(BaseDam dam):base(dam) { }
Example #15
0
 /// <summary>データアクセス制御クラス(DAM)を設定する。</summary>
 /// <param name="key">データアクセス制御クラス(DAM)のキー</param>
 /// <param name="dam">データアクセス制御クラス(DAM)</param>
 /// <remarks>派生の業務コード親クラス2、業務コード クラスから利用する。</remarks>
 protected void SetDam(string key, BaseDam dam)
 {
     this._dams[key] = dam;
 }
Example #16
0
        /// <summary>
        /// 業務コード呼び出しメソッド(業務ロジックの入り口)
        /// </summary>
        /// <param name="parameterValue">引数クラス</param>
        /// <param name="iso">分離レベル(DBMS毎の分離レベルの違いを理解して設定すること)</param>
        /// <returns>戻り値クラス</returns>
        /// <remarks>
        /// クライアント側(2層C/S)用
        /// 画面コード クラスから利用する。
        /// </remarks>
        public BaseReturnValue DoBusinessLogic(
            BaseParameterValue parameterValue, DbEnum.IsolationLevelEnum iso)
        {
            // 戻り値クラス
            BaseReturnValue returnValue = null;

            // オリジナルのスタックトレース値のクリア
            this.OriginalStackTrace = "";

            // データアクセス制御クラス(DAM)がグローバルなので、全てロックする。
            lock (BaseLogic2CS._lock)
            {

                if (BaseLogic2CS._dam == null)
                {
                    // データアクセス制御クラス(DAM)が無い場合

                    // ★データアクセス制御クラス(DAM)の生成し、コネクションを確立、
                    // トランザクションを開始する処理(業務フレームワークに、UOCで実装する)
                    this.UOC_ConnectionOpen(parameterValue, iso);
                }
                else
                {
                    // データアクセス制御クラス(DAM)が有る場合
                }

                try
                {
                    // 自動振り分け対応
                    this.WasCalledFromDoBusinessLogic = true;

                    // ★前処理(業務フレームワークに、UOCで実装する)
                    this.UOC_PreAction(parameterValue);

                    // ★業務ロジックの実行(業務処理の派生クラスに、UOCで実装する)
                    this.UOC_DoAction(parameterValue, ref returnValue);

                    // ★後処理(業務フレームワークに、UOCで実装する)
                    this.UOC_AfterAction(parameterValue, returnValue);

                    //// トランザクション終了
                    //BaseLogic2CS._dam.CommitTransaction();
                    
                    //// ★トランザクション完了後の後処理(業務フレームワークに、UOCで実装する)
                    //this.UOC_AfterTransaction(parameterValue, returnValue);
                }
                catch (BusinessApplicationException baEx)// 業務例外
                {
                    // ★★業務例外時のロールバックは自動にしない。

                    // 業務例外の場合、エラーフラグをセットする。

                    // 戻り値がnullの場合は、生成する。
                    if (returnValue == null)
                    {
                        returnValue = new BaseReturnValue();
                    }

                    returnValue.ErrorFlag = true;

                    // メッセージを戻す(戻り値クラスに設定)。
                    returnValue.ErrorMessageID = baEx.messageID;
                    returnValue.ErrorMessage = baEx.Message;
                    returnValue.ErrorInfo = baEx.Information;

                    // ★異常系の後処理(業務フレームワークに、UOCで実装する)
                    this.UOC_ABEND(parameterValue, returnValue, baEx);

                    // 正常系の戻り値にして戻すため、リスローしない。
                }
                catch (BusinessSystemException bsEx)// システム例外
                {
                    // ★システム例外時は、自動的にロールバック。

                    // 2009/03/13---B層内:トランザクション手動制御を可能に(ここから)
                    // トランザクションをロールバック
                    if (BaseLogic2CS._dam == null)
                    {
                        // nullの場合はロールバックしない(何もしない)。
                    }
                    else
                    {
                        // 例外対策(例外は潰さない)
                        try
                        {
                            // nullでない場合はロールバックする。
                            BaseLogic2CS._dam.RollbackTransaction();
                            // コネクション クローズ
                            BaseLogic2CS._dam.ConnectionClose();
                        }
                        finally
                        {
                            // nullクリア(次回、再接続される。)
                            BaseLogic2CS._dam = null;
                        }
                    }
                    // 2009/03/13---B層内:トランザクション手動制御を可能に(ここまで)

                    // 戻り値がnullの場合は、生成する。
                    if (returnValue == null)
                    {
                        returnValue = new BaseReturnValue();
                    }

                    // ★異常系の後処理(業務フレームワークに、UOCで実装する)
                    this.UOC_ABEND(parameterValue, returnValue, bsEx);

                    // リスロー
                    throw;
                }
                catch (Exception Ex)// その他、一般的な例外
                {
                    // ★その他、一般的な例外は、自動的にロールバック。

                    // 2009/03/13---B層内:トランザクション手動制御を可能に(ここから)
                    // トランザクションをロールバック
                    if (BaseLogic2CS._dam == null)
                    {
                        // nullの場合はロールバックしない(何もしない)。
                    }
                    else
                    {
                        // 例外対策(例外は潰さない)
                        try
                        {
                            // nullでない場合はロールバックする。
                            BaseLogic2CS._dam.RollbackTransaction();
                            // コネクション クローズ
                            BaseLogic2CS._dam.ConnectionClose();
                        }
                        finally
                        {
                            // nullクリア(次回、再接続される。)
                            BaseLogic2CS._dam = null;
                        }
                    }
                    // 2009/03/13---B層内:トランザクション手動制御を可能に(ここまで)

                    // 戻り値がnullの場合は、生成する。
                    if (returnValue == null)
                    {
                        returnValue = new BaseReturnValue();
                    }

                    // ★異常系の後処理(業務フレームワークに、UOCで実装する)
                    this.UOC_ABEND(parameterValue, ref returnValue, Ex);

                    // リスローしない(上記のUOC_ABENDで必要に応じてリスロー)
                    // throw;
                }
                finally
                {
                    // 自動振り分け対応
                    this.WasCalledFromDoBusinessLogic = false;

                    // クライアント側(2層C/S)用では、マニュアル操作だが、
                    // ノートランザクションの時は、都度コネクションを閉じる。

                    // Damオブジェクトの存在チェック
                    if (BaseLogic2CS._dam == null)
                    {
                        // nullのためなにもしない。
                    }
                    else
                    {
                        // ノートランザクションの時は、都度コネクションを閉じる。
                        if (iso == DbEnum.IsolationLevelEnum.NoTransaction)
                        {
                            // 例外対策(例外は潰さない)
                            try
                            {
                                // コネクション クローズ
                                BaseLogic2CS._dam.ConnectionClose();
                            }
                            finally
                            {
                                // nullクリア(次回の「DoBusinessLogic_2CS」で再接続される。)
                                BaseLogic2CS._dam = null;
                            }
                        }
                    }
                }
            }

            // 戻り値を戻す。
            return returnValue;
        }
Example #17
0
 /// <summary>データアクセス制御クラス(DAM)を初期化する</summary>
 /// <param name="TransactionPatternID">トランザクション パターンID</param>
 /// <param name="dam">データアクセス制御クラス(DAM)インスタンス</param>
 /// <remarks>派生の業務コード親クラス2、業務コード クラスから利用する。</remarks>
 protected static void InitDam(string TransactionPatternID, BaseDam dam)
 {
     BaseLogic.TC.InitDam(TransactionPatternID, dam);
 }
Example #18
0
 // 2009/03/13---B層内:トランザクション手動制御を可能に(ここから)
 /// <summary>データアクセス制御クラス(DAM)を設定する。</summary>
 /// <param name="dam">データアクセス制御クラス(DAM)</param>
 /// <remarks>派生の業務コード親クラス2、業務コード クラスから利用する。</remarks>
 protected void SetDam(BaseDam dam)
 {
     // このメソッドはロックしない。
     // ※ メンバ アクセス修飾子(protected)でガードしている。
     BaseLogic2CS._dam = dam;
 }
Example #19
0
 /// <summary>コンストラクタ</summary>
 public DaoSuppliers(BaseDam dam) : base(dam) { }
Example #20
0
 /// <summary>データアクセス制御クラス(DAM)を初期化する</summary>
 /// <param name="businessID">業務ID</param>
 /// <param name="dam">データアクセス制御クラス(DAM)インスタンス</param>
 /// <remarks>派生の業務コード親クラス2、業務コード クラスから利用する。</remarks>
 protected static void InitDam(string businessID, BaseDam dam)
 {
     BaseLogic2CS.TC.InitDam(businessID, dam);
 }
Example #21
0
 /// <summary>コンストラクタ</summary>
 /// <remarks>自由に利用できる。</remarks>
 public CmnDao(BaseDam dam) : base(dam) { }
Example #22
0
 /// <summary>コネクション クローズ処理</summary>
 /// <remarks>
 /// トランザクションを開始していない場合のコネクションクローズの方法
 /// 画面コード クラスから利用する。
 /// </remarks>
 public static void ConnectionClose()
 {
     // データアクセス制御クラス(DAM)がグローバルなので、全てロックする。
     lock (BaseLogic2CS._lock)
     {
         if (BaseLogic2CS._dam == null) { }
         else
         {
             // 例外対策(例外は潰さない)
             try
             {
                 // コネクション クローズ
                 BaseLogic2CS._dam.ConnectionClose();
             }
             finally
             {
                 // nullクリア(次回の「DoBusinessLogic_2CS」で再接続される。)
                 BaseLogic2CS._dam = null;
             }
         }
     }
 }
Example #23
0
 /// <summary>コンストラクタ</summary>
 public _DaoClassName_(BaseDam dam) : base(dam) { }
Example #24
0
 /// <summary>コンストラクタ</summary>
 public DaoOrders(BaseDam dam) : base(dam) { }
Example #25
0
 /// <summary>コンストラクタ</summary>
 /// <param name="dam">データアクセス制御クラス</param>
 public Workflow(BaseDam dam)
     : base(dam)
 {
     // Baseのコンストラクタに引数を渡すために必要。
 }
Example #26
0
 /// <summary>コンストラクタ</summary>
 /// <param name="dam">データアクセス制御クラス</param>
 public BaseConsolidateDao(BaseDam dam)
 {
     this._dam = dam;
 }
Example #27
0
 /// <summary>コンストラクタ</summary>
 /// <param name="dam">データアクセスオブジェクト</param>
 /// <remarks>業務コード クラスから利用する。</remarks>
 public BaseDao(BaseDam dam)
 {
     this._dam = dam;
 }
Example #28
0
 // 2009/03/13---B層内:トランザクション手動制御を可能に(ここから)
 /// <summary>データアクセス制御クラス(DAM)を設定する。</summary>
 /// <param name="dam">データアクセス制御クラス(DAM)</param>
 /// <remarks>派生の業務コード親クラス2、業務コード クラスから利用する。</remarks>
 protected void SetDam(BaseDam dam)
 {
     this._dam = dam;
 }
Example #29
0
 /// <summary>コンストラクタ</summary>
 public DaoM_Workflow(BaseDam dam) : base(dam) { }
Example #30
0
 /// <summary>コンストラクタ</summary>
 public DaoCustomers(BaseDam dam) : base(dam) { }