// #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); } } }
/// <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; } } } }
/// <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); }
/// <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> /// 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; }
/// <summary>コンストラクタ</summary> /// <param name="dam">データアクセス制御クラス</param> public Workflow(BaseDam dam) : base(dam) { // Baseのコンストラクタに引数を渡すために必要。 }
/// <summary>コンストラクタ</summary> /// <param name="dam">BaseDam</param> /// <param name="cacheId">キャッシュ用ID</param> public DaoShippers(BaseDam dam, string cacheId) : base(dam) { this.CacheId = cacheId; }
/// <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 }
/// <summary>コンストラクタ</summary> /// <remarks>自由に利用できる。</remarks> public CmnDao(BaseDam dam, CommandType cmdType) : base(dam) { this._cmdType = cmdType; }
/// <summary>コンストラクタ</summary> public DaoCategories(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public DaoShippers(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public DaoSuppliers(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public DaoRegion(BaseDam dam) : base(dam) { }
/// <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) { }
/// <summary>コンストラクタ</summary> /// <param name="dam">データアクセス制御クラス</param> public BaseConsolidateDao(BaseDam dam) { this._dam = dam; }
/// <summary>コンストラクタ</summary> /// <param name="dam">データアクセスオブジェクト</param> /// <remarks>業務コード クラスから利用する。</remarks> public BaseDao(BaseDam dam) { this._dam = dam; }
/// <summary> /// コンストラクタ /// </summary> /// <remarks> /// コンストラクタは継承されないので、派生先で呼び出す必要がある。 /// コンストラクタの実行順は、基本クラス→派生クラスの順 /// ※ VB.NET では、MyBase.New() を派生クラスのコンストラクタから呼ぶ。 /// 自由に利用できる。 /// </remarks> public MyBaseDao(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public DaoOrders(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public DaoEmployeeTerritories(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public DaoSHIPPERS(BaseDam dam) : base(dam) { }
/// <summary> /// コンストラクタ /// </summary> public LayerD(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public _DaoClassName_(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> /// <remarks>自由に利用できる。</remarks> public CmnDao(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public DaoTerritories(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public DaoT_WorkflowHistory(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public DaoM_Workflow(BaseDam dam) : base(dam) { }
/// <summary>コンストラクタ</summary> public Daots_test_tableC(BaseDam dam) : base(dam) { }
public ConsolidatedLayerD(BaseDam dam) : base(dam) { }