Ejemplo n.º 1
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);
                }
            }
        }
Ejemplo n.º 2
0
 /// <summary>ロールバック + コネクション クローズ処理</summary>
 /// <remarks>
 /// 接続・切断オーバーヘッドは、コネクションプールにより回避する。
 /// 画面コード クラスから利用する。
 /// </remarks>
 public static void RollbackAndClose()
 {
     // データアクセス制御クラス(DAM)がグローバルなので、全てロックする。
     lock (BaseLogic2CS._lock)
     {
         if (BaseLogic2CS._dam == null)
         {
         }
         else
         {
             // 例外対策(例外は潰さない)
             try
             {
                 // ロールバック
                 BaseLogic2CS._dam.RollbackTransaction();
                 // コネクション クローズ
                 BaseLogic2CS._dam.ConnectionClose();
             }
             finally
             {
                 // nullクリア(次回の「DoBusinessLogic_2CS」で再接続される。)
                 BaseLogic2CS._dam = null;
             }
         }
     }
 }
Ejemplo n.º 3
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);
        }
Ejemplo n.º 4
0
        /// <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);
        }
Ejemplo n.º 5
0
    /// <summary>
    /// TestMethodForParamTag Method
    /// </summary>
    /// <param name="testParameter">testParameter</param>
    /// <param name="testReturn">testReturn</param>
    public void TestMethodForParamTag(TestParameterValue testParameter, TestReturnValue testReturn)
    {
        BaseDam bd = (BaseDam)this.GetDam();

        bd.SetSqlByFile(testParameter.Filepath);

        DataTable dt = new DataTable();

        dt             = bd.GetParametersFromPARAMTag();
        testReturn.Obj = dt;
    }
        /// <summary>Get command information from database. </summary>
        /// <param name="taskID">asynchronous task id</param>
        /// <param name="returnValue">asynchronous return value</param>
        /// <param name="dam">BaseDam</param>
        public static void GetCommandValue(int taskID, ApsReturnValue returnValue, BaseDam dam)
        {
            // Sets parameters of AsyncProcessingServiceParameterValue to get command value.
            ApsParameterValue parameterValue = new ApsParameterValue(
                "AsyncProcessingService", "SelectCommand", "SelectCommand", "SQL",
                new MyUserInfo("AsyncProcessingService", "AsyncProcessingService"));

            parameterValue.TaskId = taskID;

            // Calls data access part of asynchronous processing service.
            ApsLayerD layerD = new ApsLayerD(dam);

            layerD.SelectCommand(parameterValue, returnValue);
            returnValue.CommandId = (int)returnValue.Obj;
        }
Ejemplo n.º 7
0
 /// <summary>コンストラクタ</summary>
 /// <param name="dam">データアクセス制御クラス</param>
 public Workflow(BaseDam dam)
     : base(dam)
 {
     // Baseのコンストラクタに引数を渡すために必要。
 }
Ejemplo n.º 8
0
 /// <summary>コンストラクタ</summary>
 /// <param name="dam">BaseDam</param>
 /// <param name="cacheId">キャッシュ用ID</param>
 public DaoShippers(BaseDam dam, string cacheId) : base(dam)
 {
     this.CacheId = cacheId;
 }
Ejemplo n.º 9
0
        /// <summary>データアクセス制御クラス(DAM)の生成し、コネクションを確立、トランザクションを開始する処理を実装</summary>
        /// <param name="parameterValue">引数クラス</param>
        /// <param name="iso">分離レベル(DBMS毎の分離レベルの違いを理解して設定すること)</param>
        /// <remarks>業務コード親クラス1から利用される派生の末端</remarks>
        protected override void UOC_ConnectionOpen(
            BaseParameterValue parameterValue,
            DbEnum.IsolationLevelEnum iso)
        {
            #region トランザクション属性取得例

            //// クラスの属性、メソッドの属性から調査
            //MyAttribute[] aryMCA;
            //MyAttribute[] aryMMA;

            //// クラスの属性を取得
            //MyAttribute.GetAttr(this, out aryMCA);

            //foreach (MyAttribute mca in aryMCA)
            //{
            //    Debug.WriteLine(this.GetType().ToString() + ".MyAttributeA = " + mca.MyAttributeA);
            //    Debug.WriteLine(this.GetType().ToString() + ".MyAttributeB = " + mca.MyAttributeB);
            //    Debug.WriteLine(this.GetType().ToString() + ".MyAttributeC = " + mca.MyAttributeC);
            //    Debug.WriteLine("+------------------+");
            //}

            //// メソッドの属性を取得
            //MethodInfo[] aryMtdInfo = this.GetType().GetMethods();

            //foreach (MethodInfo mtdInfo in aryMtdInfo)
            //{
            //    MyAttribute.GetAttr(mtdInfo, out aryMMA);

            //    foreach (MyAttribute mma in aryMMA)
            //    {
            //        Debug.WriteLine(mtdInfo.Name + ".MyAttributeA = " + mma.MyAttributeA);
            //        Debug.WriteLine(mtdInfo.Name + ".MyAttributeB = " + mma.MyAttributeB);
            //        Debug.WriteLine(mtdInfo.Name + ".MyAttributeC = " + mma.MyAttributeC);
            //        Debug.WriteLine("+------------------+");
            //    }
            //}

            #endregion

            // データアクセス制御クラス(DAM)
            BaseDam dam = null;

            #region 接続

            if (iso == DbEnum.IsolationLevelEnum.NotConnect)
            {
                // 接続しない
            }
            else
            {
                // 接続する

                string connstring = "";

                #region データ プロバイダ選択

                if (parameterValue.ActionType.Split('%')[0] == "SQL")
                {
                    // SQL Server / SQL Client用のDamを生成
                    dam = new DamSqlSvr();

                    // 接続文字列をロード
                    connstring = GetConfigParameter.GetConnectionString("ConnectionString_SQL");
                }
                else if (parameterValue.ActionType.Split('%')[0] == "OLE")
                {
                    // OLEDB.NET用のDamを生成
                    dam = new DamOLEDB();

                    // 接続文字列をロード
                    connstring = GetConfigParameter.GetConnectionString("ConnectionString_OLE");
                }
                else if (parameterValue.ActionType.Split('%')[0] == "ODB")
                {
                    // ODBC.NET用のDamを生成
                    dam = new DamODBC();

                    // 接続文字列をロード
                    connstring = GetConfigParameter.GetConnectionString("ConnectionString_ODBC");
                }
                else if (parameterValue.ActionType.Split('%')[0] == "ORA")
                {
                    // Oracle / Oracle Client用のDamを生成
                    dam = new DamOraClient();

                    // 接続文字列をロード
                    connstring = GetConfigParameter.GetConnectionString("ConnectionString_ORA");
                }
                else if (parameterValue.ActionType.Split('%')[0] == "ODP")
                {
                    // Oracle / ODP.NET用のDamを生成
                    dam = new DamOraOdp();

                    // 接続文字列をロード(ODP2:Instant Client)
                    connstring = GetConfigParameter.GetConnectionString("ConnectionString_ODP2");
                }
                else if (parameterValue.ActionType.Split('%')[0] == "DB2")
                {
                    // DB2.NET用のDamを生成
                    dam = new DamDB2();

                    // 接続文字列をロード
                    connstring = GetConfigParameter.GetConnectionString("ConnectionString_DB2");
                }
                //else if (parameterValue.ActionType.Split('%')[0] == "HIR")
                //{
                //    // HiRDBデータプロバイダ用のDamを生成
                //    dam = new DamHiRDB();

                //    // 接続文字列をロード
                //    connstring = GetConfigParameter.GetConnectionString("ConnectionString_HIR");
                //}
                else if (parameterValue.ActionType.Split('%')[0] == "MCN")
                {
                    // MySQL Cnn/NET用のDamを生成
                    dam = new DamMySQL();

                    // 接続文字列をロード
                    connstring = GetConfigParameter.GetConnectionString("ConnectionString_MCN");
                }
                else if (parameterValue.ActionType.Split('%')[0] == "NPS")
                {
                    // PostgreSQL / Npgsql用のDamを生成
                    dam = new DamPstGrS();

                    // 接続文字列をロード
                    connstring = GetConfigParameter.GetConnectionString("ConnectionString_NPS");
                }
                else
                {
                    // ここは通らない
                }

                #endregion

                if (dam != null)
                {
                    // コネクションをオープンする。
                    dam.ConnectionOpen(connstring);

                    #region トランザクションを開始する。

                    if (iso == DbEnum.IsolationLevelEnum.User)
                    {
                        // 自動トランザクション(規定の分離レベル)
                        dam.BeginTransaction(DbEnum.IsolationLevelEnum.ReadCommitted);
                    }
                    else
                    {
                        // 自動トランザクション(指定の分離レベル)
                        dam.BeginTransaction(iso);
                    }

                    #endregion

                    // ユーザ情報を格納する(ログ出力で利用)。
                    dam.Obj = ((MyParameterValue)parameterValue).User;

                    // damを設定する。
                    this.SetDam(dam);
                }
            }

            #endregion
        }
Ejemplo n.º 10
0
 /// <summary>コンストラクタ</summary>
 /// <remarks>自由に利用できる。</remarks>
 public CmnDao(BaseDam dam, CommandType cmdType) : base(dam)
 {
     this._cmdType = cmdType;
 }
 /// <summary>コンストラクタ</summary>
 public DaoCategories(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 12
0
 /// <summary>コンストラクタ</summary>
 public DaoShippers(BaseDam dam) : base(dam)
 {
 }
 /// <summary>コンストラクタ</summary>
 public DaoSuppliers(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 14
0
 /// <summary>コンストラクタ</summary>
 public DaoRegion(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 15
0
        /// <summary>検索条件の設定</summary>
        /// <param name="parameterValue">引数クラス</param>
        /// <param name="cmnDao">共通Dao</param>
        /// <returns>Where句</returns>
        private string SetSearchConditions(
            _3TierParameterValue parameterValue, CmnDao cmnDao)
        {
            //  検索条件
            string whereSQL = "";

            #region AND

            // AndEqualSearchConditions
            // nullチェック
            if (parameterValue.AndEqualSearchConditions == null)
            {
                // == null
            }
            else
            {
                // != null
                foreach (string k in parameterValue.AndEqualSearchConditions.Keys)
                {
                    // フラグ
                    bool isSetted = false;

                    // nullチェック(null相当を要検討
                    if (parameterValue.AndEqualSearchConditions[k] == null)
                    {
                        // == null
                    }
                    else
                    {
                        // != null

                        // 文字列チェック
                        if (parameterValue.AndEqualSearchConditions[k] is string)
                        {
                            // 文字列の場合
                            if ((string)parameterValue.AndEqualSearchConditions[k] == "")
                            {
                                // 空文字列(★ 扱いを検討 → 検索条件の空文字列は検索しない扱い
                            }
                            else
                            {
                                // 空文字列でない。
                                isSetted = true;
                            }
                        }
                        else
                        {
                            // オブジェクトの場合
                            isSetted = true;
                        }
                    }

                    // パラメタを設定
                    if (isSetted)
                    {
                        whereSQL = GenWhereAndSetParameter(
                            WHERE_SQL_TEMPLATE_EQUAL, whereSQL,
                            cmnDao, k, parameterValue.AndEqualSearchConditions[k], false);

                        isSetted = false;
                    }
                }
            }

            // AndLikeSearchConditions
            // nullチェック
            if (parameterValue.AndLikeSearchConditions == null)
            {
                // == null
            }
            else
            {
                // != null
                foreach (string k in parameterValue.AndLikeSearchConditions.Keys)
                {
                    // nullチェック(null相当を要検討
                    if (string.IsNullOrEmpty(parameterValue.AndLikeSearchConditions[k]))
                    {
                        // 空文字列
                    }
                    else
                    {
                        // 空文字列でない。

                        // パラメタを設定
                        whereSQL = GenWhereAndSetParameter(
                            WHERE_SQL_TEMPLATE_LIKE, whereSQL,
                            cmnDao, k, parameterValue.AndLikeSearchConditions[k], true);
                    }
                }
            }

            #endregion

            #region OR

            // OrEqualSearchConditions
            // nullチェック
            if (parameterValue.OrEqualSearchConditions == null)
            {
                // == null
            }
            else
            {
                // != null
                foreach (string k in parameterValue.OrEqualSearchConditions.Keys)
                {
                    // フラグ
                    bool isSetted = false;

                    // nullチェック(null相当を要検討
                    if (parameterValue.OrEqualSearchConditions[k] == null)
                    {
                        // == null
                    }
                    else
                    {
                        // != null

                        // OR条件はループする。
                        int i = 0;
                        foreach (object o in parameterValue.OrEqualSearchConditions[k])
                        {
                            // 文字列チェック
                            if (o is string)
                            {
                                // 文字列の場合
                                if ((string)o == "")
                                {
                                    // 空文字列(★ 扱いを検討 → 検索条件の空文字列は検索しない扱い
                                }
                                else
                                {
                                    // 空文字列でない。
                                    isSetted = true;
                                }
                            }
                            else
                            {
                                // オブジェクトの場合
                                isSetted = true;
                            }

                            // パラメタを設定
                            if (isSetted)
                            {
                                whereSQL = GenWhereOrSetParameter(
                                    WHERE_SQL_TEMPLATE_EQUAL, whereSQL, cmnDao, k, o, i, false);

                                isSetted = false;
                                i++;
                            }
                        }
                    }
                }
            }

            // OrLikeSearchConditions
            // nullチェック
            if (parameterValue.OrLikeSearchConditions == null)
            {
                // == null
            }
            else
            {
                // != null
                foreach (string k in parameterValue.OrLikeSearchConditions.Keys)
                {
                    // nullチェック(null相当を要検討
                    if (parameterValue.OrLikeSearchConditions[k] == null)
                    {
                        // == null
                    }
                    else
                    {
                        // != null

                        // OR条件はループする。
                        int i = 0;
                        foreach (string s in parameterValue.OrLikeSearchConditions[k])
                        {
                            // 文字列の場合
                            if ((string)s == "")
                            {
                                // 空文字列
                            }
                            else
                            {
                                // 空文字列でない。
                                // パラメタを設定
                                whereSQL = GenWhereOrSetParameter(
                                    WHERE_SQL_TEMPLATE_LIKE, whereSQL, cmnDao, k, s, i, true);
                                i++;
                            }
                        }
                    }
                }
            }

            #endregion

            #region その他

            // 追加の検索条件(要:半角スペース)
            whereSQL += " " + parameterValue.ElseWhereSQL;

            // ElseSearchConditions
            // nullチェック
            if (parameterValue.ElseSearchConditions == null)
            {
                // == null
            }
            else
            {
                // != null
                foreach (string k in parameterValue.ElseSearchConditions.Keys)
                {
                    // nullチェック(null相当を要検討
                    if (parameterValue.ElseSearchConditions[k] == null)
                    {
                        // == null
                    }
                    else
                    {
                        // != null
                        cmnDao.SetParameter(k, parameterValue.ElseSearchConditions[k]);
                    }
                }
            }

            #endregion

            // Where句の付与(要:Trim)
            if (!string.IsNullOrEmpty(whereSQL.Trim()))
            {
                // (要:半角スペース)
                whereSQL = "WHERE " + whereSQL;
            }

            // 先頭の論理演算子を削除
            return(BaseDam.DeleteFirstLogicalOperatoronWhereClause(whereSQL));
        }
 /// <summary>コンストラクタ</summary>
 public DaoProducts(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 17
0
 /// <summary>コンストラクタ</summary>
 /// <param name="dam">データアクセス制御クラス</param>
 public BaseConsolidateDao(BaseDam dam)
 {
     this._dam = dam;
 }
Ejemplo n.º 18
0
 /// <summary>コンストラクタ</summary>
 /// <param name="dam">データアクセスオブジェクト</param>
 /// <remarks>業務コード クラスから利用する。</remarks>
 public BaseDao(BaseDam dam)
 {
     this._dam = dam;
 }
Ejemplo n.º 19
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 /// <remarks>
 /// コンストラクタは継承されないので、派生先で呼び出す必要がある。
 /// コンストラクタの実行順は、基本クラス→派生クラスの順
 /// ※ VB.NET では、MyBase.New() を派生クラスのコンストラクタから呼ぶ。
 /// 自由に利用できる。
 /// </remarks>
 public MyBaseDao(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 20
0
 /// <summary>コンストラクタ</summary>
 public DaoOrders(BaseDam dam) : base(dam)
 {
 }
 /// <summary>コンストラクタ</summary>
 public DaoEmployeeTerritories(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 22
0
 /// <summary>コンストラクタ</summary>
 public DaoSHIPPERS(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 23
0
 /// <summary>
 /// コンストラクタ
 /// </summary>
 public LayerD(BaseDam dam) : base(dam)
 {
 }
 /// <summary>コンストラクタ</summary>
 public _DaoClassName_(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 25
0
 /// <summary>コンストラクタ</summary>
 /// <remarks>自由に利用できる。</remarks>
 public CmnDao(BaseDam dam) : base(dam)
 {
 }
 /// <summary>コンストラクタ</summary>
 public DaoTerritories(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 27
0
 /// <summary>コンストラクタ</summary>
 public DaoT_WorkflowHistory(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 28
0
 /// <summary>コンストラクタ</summary>
 public DaoM_Workflow(BaseDam dam) : base(dam)
 {
 }
 /// <summary>コンストラクタ</summary>
 public Daots_test_tableC(BaseDam dam) : base(dam)
 {
 }
Ejemplo n.º 30
0
 public ConsolidatedLayerD(BaseDam dam) : base(dam)
 {
 }