/// <summary>業務処理を実装</summary> /// <param name="testParameter">引数クラス</param> private void UOC_Invoke(TestParameterValue testParameter) { //メソッド引数にBaseParameterValueの派生の型を定義可能。 // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- // データアクセス クラスを生成する DaoSuppliers daoSuppliers = new DaoSuppliers(this.GetDam()); // 全件参照 DataTable dt1 = new DataTable(); daoSuppliers.D2_Select(dt1); // データアクセス クラスを生成する DaoCategories daoCategories = new DaoCategories(this.GetDam()); // 実行 DataTable dt2 = new DataTable(); daoCategories.D2_Select(dt2); // 戻り値を戻す testReturn.Obj = new DataTable[] { dt1, dt2 }; // ↑業務処理----------------------------------------------------- }
/// <summary>業務処理を実装</summary> /// <param name="testParameter">引数クラス</param> private void UOC_メソッド名(TestParameterValue testParameter) { //メソッド引数にBaseParameterValueの派生の型を定義可能。 // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- // 個別Dao LayerD myDao = new LayerD(this.GetDam()); //myDao.xxxx(testParameter, ref testReturn); // 共通Dao CmnDao cmnDao = new CmnDao(this.GetDam()); cmnDao.ExecSelectScalar(); // ↑業務処理----------------------------------------------------- }
/// <summary>テンプレ</summary> /// <param name="testParameter">引数クラス</param> /// <param name="testReturn">戻り値クラス</param> public void テンプレ(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- // ● 下記のいづれかの方法でSQLを設定する。 // -- ファイルから読み込む場合。 this.SetSqlByFile2("ファイル名"); // -- 直接指定する場合。 this.SetSqlByCommand("SQL文"); // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 this.SetParameter("P1", testParameter.ShipperID); object obj; // -- 追加、更新、削除の場合(件数を確認できる) obj = this.ExecInsUpDel_NonQuery(); // -- 先頭の1セル分の情報を返すSELECTクエリを実行する場合 obj = this.ExecSelectScalar(); // -- テーブル(or レコード)の情報を返す // SELECTクエリを実行する場合(引数 = データテーブル) obj = new DataTable(); this.ExecSelectFill_DT((DataTable)obj); // -- テーブル(or レコード)の情報を返す // SELECTクエリを実行する場合(引数 = データセット) obj = new DataSet(); this.ExecSelectFill_DS((DataSet)obj); // -- データリーダを返す IDataReader idr = (IDataReader)this.ExecSelect_DR(); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = obj; }
/// <summary>業務処理を実装</summary> /// <param name="testParameter">引数クラス</param> private void UOC_SelectCount(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- switch ((testParameter.ActionType.Split('%'))[1]) { case "generate": // 自動生成Daoを使用する。 break; case "common": // 共通Daoを使用する。 default: // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": // 静的SQLを指定 cmnDao.SQLFileName = "ShipperCount.sql"; break; case "dynamic": // 動的SQLを指定 cmnDao.SQLFileName = "ShipperCount.xml"; break; } // 共通Daoを実行 // 戻り値を設定 testReturn.Obj = cmnDao.ExecSelectScalar(); break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <summary> /// UOC_check Method /// </summary> /// <param name="testParameter">testParameter</param> private void UOC_check(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- switch ((testParameter.ActionType.Split('%'))[1]) { case "generate": break; case "common": // 共通Daoを使用する。 default: // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": switch (testParameter.check) { case "check_7a": cmnDao.SQLFileName = "check_7a.xml"; break; case "check_11a": cmnDao.SQLFileName = "check_11a.xml"; break; case "check_11c": cmnDao.SQLFileName = "check_11c.xml"; break; case "check_3f": cmnDao.SQLFileName = "check_3f.xml"; break; case "check_9c": cmnDao.SQLFileName = "check_9c.xml"; break; case "check_1": cmnDao.SQLFileName = "check_1.xml"; break; case "check_2": cmnDao.SQLFileName = "check_2.xml"; break; case "check_3": cmnDao.SQLFileName = "check_3.xml"; break; case "check_4": cmnDao.SQLFileName = "check_4.xml"; break; case "check_5": cmnDao.SQLFileName = "check_5.xml"; break; } break; case "dynamic": switch (testParameter.check) { case "check_7a": cmnDao.SQLFileName = "check_7a.xml"; break; case "check_11a": cmnDao.SQLFileName = "check_11a.xml"; break; case "check_11c": cmnDao.SQLFileName = "check_11c.xml"; break; case "check_3f": cmnDao.SQLFileName = "check_3f.xml"; break; case "check_9c": cmnDao.SQLFileName = "check_9c.xml"; break; case "check_1": cmnDao.SQLFileName = "check_1.xml"; break; case "check_2": cmnDao.SQLFileName = "check_2.xml"; break; case "check_3": cmnDao.SQLFileName = "check_3.xml"; break; case "check_4": cmnDao.SQLFileName = "check_4.xml"; break; case "check_5": cmnDao.SQLFileName = "check_5.xml"; break; } break; } switch (testParameter.check) { case "check_7a": ArrayList arr = new ArrayList(); arr.Add(1); arr.Add(2); arr.Add(3); arr.Add(4); cmnDao.SetParameter("PLIST", arr); break; case "check_11a": cmnDao.SetParameter("P", false); break; case "check_11c": cmnDao.SetParameter("P", true); break; case "check_3f": cmnDao.SetParameter("og", true); break; case "check_9c": cmnDao.SetParameter("P", null); break; case "check_1": cmnDao.SetParameter("P", false); break; case "check_2": // ユーザ定義パラメタに対して、動的に値を設定する。 string orderColumn = ""; string orderSequence = ""; if (testParameter.OrderColumn == "c1") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c2") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c3") { orderColumn = "CompanyName"; } if (testParameter.OrderSequence == "A") { orderSequence = "ASC"; } else if (testParameter.OrderSequence == "D") { orderSequence = "DESC"; } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("P1", "test"); cmnDao.SetParameter("P2", "test1"); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 cmnDao.SetUserParameter("COLUMN", "" + orderColumn + ""); cmnDao.SetUserParameter("SEQUENCE", "" + orderSequence + ""); cmnDao.SetParameter("j1", "TEST"); cmnDao.SetParameter("j2", true); break; case "check_3": cmnDao.SetParameter("P", 1); break; case "check_4": cmnDao.SetParameter("Q", true); break; case "check_5": cmnDao.SetParameter("P", true); break; } // 戻り値 ds DataSet ds = new DataSet(); // -- 一覧を返すSELECTクエリを実行する cmnDao.ExecSelectFill_DS(ds); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds; break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <summary>一覧を返すSELECTクエリを実行する</summary> /// <param name="testParameter">引数クラス</param> /// <param name="testReturn">戻り値クラス</param> public void SelectCase(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- string filename = ""; if ((testParameter.ActionType.Split('%'))[2] == "static") { // 静的SQL switch (testParameter.SelectCase) { case "SelectCase1a": filename = "select-case1a.dpq.xml"; break; case "SelectCase1b": filename = "select-case1b.dpq.xml"; break; case "SelectCase2a": filename = "select-case2a.dpq.xml"; break; case "SelectCase2b": filename = "select-case2b.dpq.xml"; break; case "SelectCase3a": filename = "select-case3a.dpq.xml"; break; case "SelectCase3b": filename = "select-case3b.dpq.xml"; break; case "SelectCase4a": filename = "select-case4a.dpq.xml"; break; case "SelectCase4b": filename = "select-case4b.dpq.xml"; break; case "SelectCaseDefault1a": filename = "select-case-default1a.dpq.xml"; break; case "SelectCaseDefault1b": filename = "select-case-default1b.dpq.xml"; break; case "SelectCaseDefault2a": filename = "select-case-default2a.dpq.xml"; break; case "SelectCaseDefault2b": filename = "select-case-default2b.dpq.xml"; break; case "SelectCaseDefault3a": filename = "select-case-default3a.dpq.xml"; break; case "SelectCaseDefault3b": filename = "select-case-default3b.dpq.xml"; break; case "SelectCaseDefault4a": filename = "select-case-default4a.dpq.xml"; break; case "SelectCaseDefault4b": filename = "select-case-default4b.dpq.xml"; break; } } else if ((testParameter.ActionType.Split('%'))[2] == "dynamic") { // 動的SQL switch (testParameter.SelectCase) { case "SelectCase1a": filename = "select-case1a.dpq.xml"; break; case "SelectCase1b": filename = "select-case1b.dpq.xml"; break; case "SelectCase2a": filename = "select-case2a.dpq.xml"; break; case "SelectCase2b": filename = "select-case2b.dpq.xml"; break; case "SelectCase3a": filename = "select-case3a.dpq.xml"; break; case "SelectCase3b": filename = "select-case3b.dpq.xml"; break; case "SelectCase4a": filename = "select-case4a.dpq.xml"; break; case "SelectCase4b": filename = "select-case4b.dpq.xml"; break; case "SelectCaseDefault1a": filename = "select-case-default1a.dpq.xml"; break; case "SelectCaseDefault1b": filename = "select-case-default1b.dpq.xml"; break; case "SelectCaseDefault2a": filename = "select-case-default2a.dpq.xml"; break; case "SelectCaseDefault2b": filename = "select-case-default2b.dpq.xml"; break; case "SelectCaseDefault3a": filename = "select-case-default3a.dpq.xml"; break; case "SelectCaseDefault3b": filename = "select-case-default3b.dpq.xml"; break; case "SelectCaseDefault4a": filename = "select-case-default4a.dpq.xml"; break; case "SelectCaseDefault4b": filename = "select-case-default4b.dpq.xml"; break; } } // -- ファイルから読み込む場合。 this.SetSqlByFile2(filename); switch (testParameter.SelectCase) { // Select Case case "SelectCase1a": this.SetParameter("sel", "a1"); break; case "SelectCase1b": this.SetParameter("sel", 111); break; case "SelectCase2a": this.SetParameter("sel", "b2"); break; case "SelectCase2b": this.SetParameter("sel", 222); break; case "SelectCase3a": this.SetParameter("sel", "c3"); break; case "SelectCase3b": this.SetParameter("sel", 333); break; case "SelectCase4a": this.SetParameter("sel", "xxx"); break; case "SelectCase4b": this.SetParameter("sel", 999); break; //Select Case Default case "SelectCaseDefault1a": this.SetParameter("sel", "a1"); break; case "SelectCaseDefault1b": this.SetParameter("sel", 111); break; case "SelectCaseDefault2a": this.SetParameter("sel", "b2"); break; case "SelectCaseDefault2b": this.SetParameter("sel", 222); break; case "SelectCaseDefault3a": this.SetParameter("sel", "c3"); break; case "SelectCaseDefault3b": this.SetParameter("sel", 333); break; case "SelectCaseDefault4a": this.SetParameter("sel", "xxx"); break; case "SelectCaseDefault4b": this.SetParameter("sel", 999); break; } // 戻り値 dt DataTable dt = new DataTable(); // -- 一覧を返すSELECTクエリを実行する this.ExecSelectFill_DT(dt); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = dt; }
/// <summary>Insertクエリを実行する</summary> /// <param name="testParameter">引数クラス</param> /// <param name="testReturn">戻り値クラス</param> public void Insert(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- // -- ファイルから読み込む場合。 this.SetSqlByFile2("ShipperInsert.sql"); // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 this.SetParameter("P2", testParameter.CompanyName); this.SetParameter("P3", testParameter.Phone); object obj; // -- 追加(件数を確認できる) obj = this.ExecInsUpDel_NonQuery(); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = obj; }
/// <summary>一覧を返すSELECTクエリを実行する</summary> /// <param name="testParameter">引数クラス</param> /// <param name="testReturn">戻り値クラス</param> public void SelectAll_DSQL(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- string filename = ""; if ((testParameter.ActionType.Split('%'))[2] == "static") { // 静的SQL filename = "ShipperSelectOrder.sql"; } else if ((testParameter.ActionType.Split('%'))[2] == "dynamic") { // 動的SQL filename = "ShipperSelectOrder.xml"; } // -- ファイルから読み込む場合。 this.SetSqlByFile2(filename); // ユーザ定義パラメタに対して、動的に値を設定する。 string orderColumn = ""; string orderSequence = ""; if (testParameter.OrderColumn == "c1") { orderColumn = "ShipperID"; } else if (testParameter.OrderColumn == "c2") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c3") { orderColumn = "Phone"; } else { } if (testParameter.OrderSequence == "A") { orderSequence = "ASC"; } else if (testParameter.OrderSequence == "D") { orderSequence = "DESC"; } else { } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 this.SetParameter("P1", "test"); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 this.SetUserParameter("COLUMN", " " + orderColumn + " "); this.SetUserParameter("SEQUENCE", " " + orderSequence + " "); // 戻り値 dt DataTable dt = new DataTable(); // -- 一覧を返すSELECTクエリを実行する this.ExecSelectFill_DT(dt); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = dt; }
/// <summary>一覧を返すSELECTクエリを実行する(DS)</summary> /// <param name="testParameter">引数クラス</param> /// <param name="testReturn">戻り値クラス</param> public void SelectAll_DS(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- string commandText = ""; if ((testParameter.ActionType.Split('%'))[2] == "static") { // 静的SQL commandText = "SELECT * FROM Shippers"; } else if ((testParameter.ActionType.Split('%'))[2] == "dynamic") { // 動的SQL commandText = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><ROOT>SELECT * FROM Shippers</ROOT>"; // 通常、動的SQLをSetSqlByCommandで直接指定するような使い方はしない。 } // -- 直接指定する場合。 this.SetSqlByCommand(commandText); // 戻り値 ds DataSet ds = new DataSet(); // -- 一覧を返すSELECTクエリを実行する this.ExecSelectFill_DS(ds); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds; }
/// <summary>件数情報を返すSELECTクエリを実行する</summary> /// <param name="testParameter">引数クラス</param> /// <param name="testReturn">戻り値クラス</param> public void SelectCount(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- string filename = ""; if ((testParameter.ActionType.Split('%'))[2] == "static") { // 静的SQL filename = "ShipperCount.sql"; } else if ((testParameter.ActionType.Split('%'))[2] == "dynamic") { // 動的SQL filename = "ShipperCount.xml"; } // -- ファイルから読み込む場合。 this.SetSqlByFile2(filename); object obj; // -- 件数情報を返すSELECTクエリを実行する obj = this.ExecSelectScalar(); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = obj; }
/// <summary>業務処理を実装</summary> /// <param name="testParameter">引数クラス</param> private void UOC_SelectAll_DS(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- DataSet ds = null; switch ((testParameter.ActionType.Split('%'))[1]) { case "common": // 共通Daoを使用する。 // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": // 静的SQLを指定 cmnDao.SQLText = "SELECT * FROM Shippers"; break; case "dynamic": // 動的SQLを指定 cmnDao.SQLText = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><ROOT>SELECT * FROM Shippers</ROOT>"; break; } // 戻り値 ds ds = new DataSet(); // 共通Daoを実行 cmnDao.ExecSelectFill_DS(ds); // 戻り値を設定 testReturn.Obj = ds; break; case "generate": // 自動生成Daoを使用する。 // 自動生成Daoを生成 DaoShippers genDao = new DaoShippers(this.GetDam()); // 戻り値 ds ds = new DataSet(); ds.Tables.Add(new DataTable()); // 自動生成Daoを実行 genDao.D2_Select(ds.Tables[0]); // 戻り値を設定 testReturn.Obj = ds; break; default: // 個別Daoを使用する。 LayerD myDao = new LayerD(this.GetDam()); myDao.SelectAll_DS(testParameter, testReturn); break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <summary> /// UOC_GetID Method to get the current Identity value from Shippers table before running the test cases. /// </summary> /// <param name="testParameter">testParameter</param> private void UOC_GetID(TestParameterValue testParameter) { TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; BaseDam bd = (BaseDam)this.GetDam(); bd.SetSqlByCommand(testParameter.ScreenId, CommandType.Text); DataTable dt = new DataTable(); bd.ExecSelectFill_DT(dt); testReturn.Obj = dt.Rows[0].ItemArray.GetValue(0); }
/// <summary> /// UOC_GetDelete Method to Delete data added to shipper table after running test cases. /// </summary> /// <param name="testParameter">testParameter</param> private void UOC_GetDelete(TestParameterValue testParameter) { TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; BaseDam bd = (BaseDam)this.GetDam(); bd.SetSqlByCommand(testParameter.ScreenId, CommandType.Text); int dlt = bd.ExecInsUpDel_NonQuery(); testReturn.Obj = dlt; }
/// <summary> /// UOC_GetParametersFromPARAMTag Method /// </summary> /// <param name="testParameter">testParameter</param> private void UOC_GetParametersFromPARAMTag(TestParameterValue testParameter) { TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; BaseDam bd = (BaseDam)this.GetDam(); bd.SetSqlByFile(testParameter.Filepath); DataTable dt = bd.GetParametersFromPARAMTag(); testReturn.Obj = dt; }
/// <summary> /// UOC_edit Method /// </summary> /// <param name="testParameter">testParameter</param> private void UOC_edit(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- switch ((testParameter.ActionType.Split('%'))[1]) { case "generate": break; case "common": // 共通Daoを使用する。 default: // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": switch (testParameter.SelectCase) { case "edit_8e": cmnDao.SQLFileName = "edit_8e.xml"; break; case "edit_4e": cmnDao.SQLFileName = "edit_4e.xml"; break; case "edit_3e": cmnDao.SQLFileName = "edit_3e.xml"; break; case "edit_9a": cmnDao.SQLFileName = "edit_9a.xml"; break; case "edit_9b1": cmnDao.SQLFileName = "edit_9b1.xml"; break; case "edit_9c1": cmnDao.SQLFileName = "edit_9c1.xml"; break; case "edit_2a": cmnDao.SQLFileName = "edit_2a.xml"; break; case "edit_5e": cmnDao.SQLFileName = "edit_5e.xml"; break; case "edit_9e": cmnDao.SQLFileName = "edit_9e.xml"; break; case "edit_10e": cmnDao.SQLFileName = "edit_10e.xml"; break; case "edit_11e": cmnDao.SQLFileName = "edit_11e.xml"; break; } break; case "dynamic": switch (testParameter.SelectCase) { case "edit_8e": cmnDao.SQLFileName = "edit_8e.xml"; break; case "edit_4e": cmnDao.SQLFileName = "edit_4e.xml"; break; case "edit_3e": cmnDao.SQLFileName = "edit_3e.xml"; break; case "edit_9a": cmnDao.SQLFileName = "edit_9a.xml"; break; case "edit_9b1": cmnDao.SQLFileName = "edit_9b1.xml"; break; case "edit_9c1": cmnDao.SQLFileName = "edit_9c1.xml"; break; case "edit_2a": cmnDao.SQLFileName = "edit_2a.xml"; break; case "edit_5e": cmnDao.SQLFileName = "edit_5e.xml"; break; case "edit_9e": cmnDao.SQLFileName = "edit_9e.xml"; break; case "edit_10e": cmnDao.SQLFileName = "edit_10e.xml"; break; case "edit_11e": cmnDao.SQLFileName = "edit_11e.xml"; break; } break; } switch (testParameter.SelectCase) { case "edit_4e": ArrayList arr = new ArrayList(); arr.Add(1); arr.Add(2); cmnDao.SetParameter("PLIST", arr); break; case "edit_8e": cmnDao.SetParameter("P", true); break; case "edit_3e": cmnDao.SetParameter("og", null); break; case "edit_9a": cmnDao.SetParameter("P", 1); break; case "edit_9b1": cmnDao.SetParameter("P", 1); break; case "edit_9c1": cmnDao.SetParameter("P", 1); break; case "edit_2a": cmnDao.SetParameter("og", true); break; case "edit_5e": break; case "edit_9e": cmnDao.SetParameter("P", null); break; case "edit_10e": cmnDao.SetParameter("P", null); break; case "edit_11e": cmnDao.SetParameter("P", null); break; } // 戻り値 ds DataSet ds = new DataSet(); // -- 一覧を返すSELECTクエリを実行する cmnDao.ExecSelectFill_DS(ds); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds; break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <summary> /// UOC_ArgumentException Method /// </summary> /// <param name="testParameter">testParameter</param> private void UOC_ArgumentException(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- string orderColumn = ""; string orderSequence = ""; switch ((testParameter.ActionType.Split('%'))[1]) { case "common": // 共通Daoを使用する。 default: // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": // 静的SQLを指定 switch (testParameter.SelectCase) { case "ArgumentException0": cmnDao.SQLFileName = "ArgumentException0.xml"; break; case "ArgumentException1": cmnDao.SQLFileName = "ArgumentException1.xml"; break; case "ArgumentException2": cmnDao.SQLFileName = "ArgumentException2.xml"; break; case "ArgumentException3": cmnDao.SQLFileName = "ArgumentException3.xml"; break; case "ArgumentException4": cmnDao.SQLFileName = "ArgumentException4.xml"; break; case "ArgumentException5": cmnDao.SQLFileName = "ArgumentException5.xml"; break; case "ArgumentException6": cmnDao.SQLFileName = "ArgumentException6.xml"; break; case "ArgumentException7": cmnDao.SQLFileName = "ArgumentException7.xml"; break; case "ArgumentException8": cmnDao.SQLFileName = "ArgumentException8.xml"; break; case "ArgumentException9": cmnDao.SQLFileName = "ArgumentException9.xml"; break; case "ArgumentException10": cmnDao.SQLFileName = "ArgumentException10.xml"; break; case "ArgumentException11": cmnDao.SQLFileName = "ArgumentException11.xml"; break; case "ArgumentException12": cmnDao.SQLFileName = "ArgumentException12.xml"; break; case "ArgumentException13": cmnDao.SQLFileName = "ArgumentException13.xml"; break; case "ArgumentException14": cmnDao.SQLFileName = "ArgumentException14.xml"; break; case "ArgumentException15": cmnDao.SQLFileName = "ArgumentException15.xml"; break; case "ArgumentException16": cmnDao.SQLFileName = "ArgumentException16.xml"; break; case "ArgumentException17": cmnDao.SQLFileName = "ArgumentException17.xml"; break; case "ArgumentException18": cmnDao.SQLFileName = "ArgumentException18.xml"; break; case "ArgumentException19": cmnDao.SQLFileName = "ArgumentException19.xml"; break; case "ArgumentException20": cmnDao.SQLFileName = "ArgumentException20.xml"; break; case "ArgumentException21": cmnDao.SQLFileName = "ArgumentException21.xml"; break; case "ArgumentException22": cmnDao.SQLFileName = "ArgumentException22.xml"; break; case "ArgumentException23": cmnDao.SQLFileName = "ArgumentException23.xml"; break; } break; case "dynamic": // 動的SQLを指定 switch (testParameter.SelectCase) { case "ArgumentException0": cmnDao.SQLFileName = "ArgumentException0.xml"; break; case "ArgumentException1": cmnDao.SQLFileName = "ArgumentException1.xml"; break; case "ArgumentException2": cmnDao.SQLFileName = "ArgumentException2.xml"; break; case "ArgumentException3": cmnDao.SQLFileName = "ArgumentException3.xml"; break; case "ArgumentException4": cmnDao.SQLFileName = "ArgumentException5.xml"; break; case "ArgumentException5": cmnDao.SQLFileName = "ArgumentException4.xml"; break; case "ArgumentException6": cmnDao.SQLFileName = "ArgumentException6.xml"; break; case "ArgumentException8": cmnDao.SQLFileName = "ArgumentException8.xml"; break; case "ArgumentException9": cmnDao.SQLFileName = "ArgumentException9.xml"; break; case "ArgumentException10": cmnDao.SQLFileName = "ArgumentException10.xml"; break; case "ArgumentException11": cmnDao.SQLFileName = "ArgumentException11.xml"; break; case "ArgumentException12": cmnDao.SQLFileName = "ArgumentException12.xml"; break; case "ArgumentException13": cmnDao.SQLFileName = "ArgumentException13.xml"; break; case "ArgumentException14": cmnDao.SQLFileName = "ArgumentException14.xml"; break; case "ArgumentException15": cmnDao.SQLFileName = "ArgumentException15.xml"; break; case "ArgumentException16": cmnDao.SQLFileName = "ArgumentException16.xml"; break; case "ArgumentException17": cmnDao.SQLFileName = "ArgumentException17.xml"; break; case "ArgumentException18": cmnDao.SQLFileName = "ArgumentException18.xml"; break; case "ArgumentException19": cmnDao.SQLFileName = "ArgumentException19.xml"; break; case "ArgumentException20": cmnDao.SQLFileName = "ArgumentException20.xml"; break; case "ArgumentException21": cmnDao.SQLFileName = "ArgumentException21.xml"; break; case "ArgumentException22": cmnDao.SQLFileName = "ArgumentException22.xml"; break; case "ArgumentException23": cmnDao.SQLFileName = "ArgumentException23.xml"; break; } break; } switch (testParameter.SelectCase) { case "ArgumentException0": if (testParameter.OrderColumn == "c1") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c2") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c3") { orderColumn = "CompanyName"; } if (testParameter.OrderSequence == "A") { orderSequence = "ASC"; } else if (testParameter.OrderSequence == "D") { orderSequence = "DESC"; } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("P1", "test"); cmnDao.SetParameter("P2", "test"); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 cmnDao.SetUserParameter("COLUMN", orderColumn); cmnDao.SetUserParameter("SEQUENCE", orderSequence); cmnDao.SetParameter("j1", true); cmnDao.SetParameter("if1", true); cmnDao.SetParameter("s1", true); cmnDao.SetParameter("j2", true); cmnDao.SetParameter("if2", true); cmnDao.SetParameter("s2", true); cmnDao.SetParameter("j3", true); cmnDao.SetParameter("if3", true); cmnDao.SetParameter("s3", true); cmnDao.SetParameter("j4", true); cmnDao.SetParameter("if4", true); cmnDao.SetParameter("s4", true); // 戻り値 ds DataSet ds = new DataSet(); // -- 一覧を返すSELECTクエリを実行する cmnDao.ExecSelectFill_DS(ds); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds; break; case "ArgumentException1": // ユーザ定義パラメタに対して、動的に値を設定する。 if (testParameter.OrderColumn == "c1") { orderColumn = "ShipperID"; } else if (testParameter.OrderColumn == "c2") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c3") { orderColumn = "Phone"; } else { } if (testParameter.OrderSequence == "A") { orderSequence = "ASC"; } else if (testParameter.OrderSequence == "D") { orderSequence = "DESC"; } else { } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("P1", "test"); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 cmnDao.SetUserParameter("COLUMN", " " + orderColumn + " "); cmnDao.SetUserParameter("SEQUENCE", " " + orderSequence + " "); // 戻り値 dt DataTable dt = new DataTable(); // 共通Daoを実行 cmnDao.ExecSelectFill_DT(dt); // 自動生成Daoを実行 testReturn.Obj = dt; break; case "ArgumentException2": cmnDao.SetParameter("CompanyName", "test"); cmnDao.SetParameter("Phone", "testdescription"); //// 共通Daoを実行 //// 戻り値を設定 testReturn.Obj = cmnDao.ExecInsUpDel_NonQuery(); break; case "ArgumentException3": cmnDao.SetParameter("CompanyName", "test"); cmnDao.SetParameter("Phone", "testdescription"); //// 共通Daoを実行 //// 戻り値を設定 testReturn.Obj = cmnDao.ExecInsUpDel_NonQuery(); break; case "ArgumentException4": // ユーザ定義パラメタに対して、動的に値を設定する。 if (testParameter.OrderColumn == "c1") { orderColumn = "ShipperID"; } else if (testParameter.OrderColumn == "c2") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c3") { orderColumn = "Phone"; } else { } if (testParameter.OrderSequence == "A") { orderSequence = "ASC"; } else if (testParameter.OrderSequence == "D") { orderSequence = "DESC"; } else { } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("P1", "test"); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 cmnDao.SetUserParameter("COLUMN", " " + orderColumn + " "); cmnDao.SetUserParameter("SEQUENCE", " " + orderSequence + " "); // 戻り値 dt DataTable dt1 = new DataTable(); // 共通Daoを実行 cmnDao.ExecSelectFill_DT(dt1); // 自動生成Daoを実行 testReturn.Obj = dt1; break; case "ArgumentException5": cmnDao.SetParameter("CompanyName", "test"); cmnDao.SetParameter("Phone", "testdescription"); //// 共通Daoを実行 //// 戻り値を設定 testReturn.Obj = cmnDao.ExecInsUpDel_NonQuery(); break; case "ArgumentException6": cmnDao.SetParameter("CompanyName", "test"); cmnDao.SetParameter("Phone", "testdescription"); //// 共通Daoを実行 //// 戻り値を設定 testReturn.Obj = cmnDao.ExecInsUpDel_NonQuery(); break; case "ArgumentException7": cmnDao.SetParameter("ShipperID", testParameter.ShipperID); cmnDao.SetParameter("Set_CompanyName_forUPD", testParameter.CompanyName); cmnDao.SetParameter("Set_Phone_forUPD", testParameter.Phone); testReturn.Obj = cmnDao.ExecInsUpDel_NonQuery(); break; case "ArgumentException8": cmnDao.SetParameter("sel", "a1"); DataTable dt2 = new DataTable(); // 共通Daoを実行 cmnDao.ExecSelectFill_DT(dt2); // 自動生成Daoを実行 testReturn.Obj = dt2; break; case "ArgumentException9": cmnDao.SetParameter("sel", "a1"); DataTable dt3 = new DataTable(); // 共通Daoを実行 cmnDao.ExecSelectFill_DT(dt3); // 自動生成Daoを実行 testReturn.Obj = dt3; break; case "ArgumentException10": case "ArgumentException21": cmnDao.SetParameter("sel", "a1"); DataTable dt4 = new DataTable(); // 共通Daoを実行 cmnDao.ExecSelectFill_DT(dt4); // 自動生成Daoを実行 testReturn.Obj = dt4; break; case "ArgumentException11": cmnDao.SetParameter("up", 28.5); cmnDao.SetParameter("uis", 113); cmnDao.SetParameter("uoo", 0); cmnDao.SetParameter("rol", 25); cmnDao.SetParameter("bit", 25); ArrayList arr = new ArrayList(); arr.Add(1); arr.Add(2); arr.Add(3); arr.Add(4); arr.Add(5); arr.Add(6); arr.Add(7); arr.Add(8); cmnDao.SetParameter("PLIST", arr); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 cmnDao.SetUserParameter("COLUMN", "" + orderColumn + ""); cmnDao.SetUserParameter("SEQUENCE", "" + orderSequence + ""); cmnDao.SetParameter("ISNOTNULL1", false); cmnDao.SetParameter("ISNOTNULL2", false); cmnDao.SetParameter("ISNOTNULL3", false); // 戻り値 ds // 戻り値 ds DataSet ds1 = new DataSet(); // -- 一覧を返すSELECTクエリを実行する cmnDao.ExecSelectFill_DS(ds1); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds1; break; case "ArgumentException12": cmnDao.SetParameter("P", false); DataSet ds2 = new DataSet(); // -- 一覧を返すSELECTクエリを実行する cmnDao.ExecSelectFill_DS(ds2); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds2; break; case "ArgumentException13": cmnDao.SetParameter("og", true); DataSet ds3 = new DataSet(); // -- 一覧を返すSELECTクエリを実行する cmnDao.ExecSelectFill_DS(ds3); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds3; break; case "ArgumentException14": case "ArgumentException15": case "ArgumentException16": if (testParameter.OrderColumn == "c1") { orderColumn = "SUPPLIERID"; } else if (testParameter.OrderColumn == "c2") { orderColumn = "SUPPLIERID"; } else if (testParameter.OrderColumn == "c3") { orderColumn = "SUPPLIERID"; } if (testParameter.OrderSequence == "A") { orderSequence = "ASC"; } else if (testParameter.OrderSequence == "D") { orderSequence = "DESC"; } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("up", 28.5); cmnDao.SetParameter("uis", 113); cmnDao.SetParameter("uoo", 0); cmnDao.SetParameter("rol", 25); cmnDao.SetParameter("bit", 25); ArrayList arr1 = new ArrayList(); arr1.Add(1); arr1.Add(2); arr1.Add(3); arr1.Add(4); arr1.Add(5); arr1.Add(6); arr1.Add(7); arr1.Add(8); cmnDao.SetParameter("PLIST", arr1); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 cmnDao.SetUserParameter("COLUMN", "" + orderColumn + ""); cmnDao.SetUserParameter("SEQUENCE", "" + orderSequence + ""); cmnDao.SetParameter("ISNOTNULL1", false); cmnDao.SetParameter("ISNOTNULL2", false); cmnDao.SetParameter("ISNOTNULL3", false); // 戻り値 ds // 戻り値 ds DataSet ds5 = new DataSet(); // -- 一覧を返すSELECTクエリを実行する cmnDao.ExecSelectFill_DS(ds5); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds5; break; case "ArgumentException17": case "ArgumentException18": cmnDao.SetParameter("sel", "a1"); // 戻り値 dt DataTable dt5 = new DataTable(); // 共通Daoを実行 cmnDao.ExecSelectFill_DT(dt5); // 自動生成Daoを実行 testReturn.Obj = dt5; break; case "ArgumentException19": case "ArgumentException20": if (testParameter.OrderColumn == "c1") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c2") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c3") { orderColumn = "CompanyName"; } if (testParameter.OrderSequence == "A") { orderSequence = "ASC"; } else if (testParameter.OrderSequence == "D") { orderSequence = "DESC"; } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("P1", "test"); cmnDao.SetParameter("P2", "test1"); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 cmnDao.SetUserParameter("COLUMN", "" + orderColumn + ""); cmnDao.SetUserParameter("SEQUENCE", "" + orderSequence + ""); cmnDao.SetParameter("j1", true); cmnDao.SetParameter("j2", true); // 戻り値 ds DataSet ds4 = new DataSet(); // -- 一覧を返すSELECTクエリを実行する cmnDao.ExecSelectFill_DS(ds4); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds4; break; case "ArgumentException22": case "ArgumentException23": cmnDao.SetParameter("og", 1); // 戻り値 ds DataSet ds6 = new DataSet(); // -- 一覧を返すSELECTクエリを実行する cmnDao.ExecSelectFill_DS(ds6); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds6; break; } break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <summary> /// check Method /// </summary> /// <param name="testParameter">testParameter</param> /// <param name="testReturn">testReturn</param> public void check(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- string filename = ""; if ((testParameter.ActionType.Split('%'))[2] == "static") { // 静的SQL switch (testParameter.check) { case "check_7a": filename = "check_7a.xml"; break; case "check_11a": filename = "check_11a.xml"; break; case "check_11c": filename = "check_11c.xml"; break; } } else if ((testParameter.ActionType.Split('%'))[2] == "dynamic") { // 動的SQL switch (testParameter.check) { case "check_7a": filename = "check_7a.xml"; break; case "check_11a": filename = "check_11a.xml"; break; case "check_11c": filename = "check_11c.xml"; break; } } // -- ファイルから読み込む場合。 this.SetSqlByFile2(filename); switch (testParameter.check) { case "check_7a": ArrayList arr = new ArrayList(); arr.Add(1); arr.Add(2); arr.Add(3); arr.Add(4); this.SetParameter("PLIST", arr); break; case "check_11a": this.SetParameter("P", false); break; case "check_11c": this.SetParameter("P", true); break; } // 戻り値 ds DataSet ds = new DataSet(); // -- 一覧を返すSELECTクエリを実行する this.ExecSelectFill_DS(ds); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds; }
/// <summary>業務処理を実装</summary> /// <param name="testParameter">引数クラス</param> private void UOC_SelectAll_DR(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- DataTable dt = null; switch ((testParameter.ActionType.Split('%'))[1]) { case "common": // 共通Daoを使用する。 // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": // 静的SQLを指定 cmnDao.SQLText = "SELECT * FROM Shippers"; break; case "dynamic": // 動的SQLを指定 cmnDao.SQLText = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><ROOT>SELECT * FROM Shippers</ROOT>"; break; } // 戻り値 dt dt = new DataTable(); // 3列生成 dt.Columns.Add("c1", System.Type.GetType("System.String")); dt.Columns.Add("c2", System.Type.GetType("System.String")); dt.Columns.Add("c3", System.Type.GetType("System.String")); // 共通Daoを実行 IDataReader idr = cmnDao.ExecSelect_DR(); while (idr.Read()) { // DRから読む object[] objArray = new object[3]; idr.GetValues(objArray); // DTに設定する。 DataRow dr = dt.NewRow(); dr.ItemArray = objArray; dt.Rows.Add(dr); } // 終了したらクローズ idr.Close(); // 戻り値を設定 testReturn.Obj = dt; break; case "generate": // 自動生成Daoを使用する。 // DRのI/Fなし // 自動生成Daoを生成 DaoShippers genDao = new DaoShippers(this.GetDam()); // 戻り値 dt dt = new DataTable(); // 自動生成Daoを実行 genDao.D2_Select(dt); // 戻り値を設定 testReturn.Obj = (DataTable)dt; break; default: // 個別Daoを使用する。 LayerD myDao = new LayerD(this.GetDam()); myDao.SelectAll_DR(testParameter, testReturn); break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <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>業務処理を実装</summary> /// <param name="testParameter">引数クラス</param> private void UOC_SelectAll_DSQL(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- switch ((testParameter.ActionType.Split('%'))[1]) { case "common": // 共通Daoを使用する。 // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": // 静的SQLを指定 cmnDao.SQLFileName = "ShipperSelectOrder.sql"; break; case "dynamic": // 動的SQLを指定 cmnDao.SQLFileName = "ShipperSelectOrder.xml"; break; } // ユーザ定義パラメタに対して、動的に値を設定する。 string orderColumn = ""; string orderSequence = ""; if (testParameter.OrderColumn == "c1") { orderColumn = "ShipperID"; } else if (testParameter.OrderColumn == "c2") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c3") { orderColumn = "Phone"; } else { } if (testParameter.OrderSequence == "A") { orderSequence = "ASC"; } else if (testParameter.OrderSequence == "D") { orderSequence = "DESC"; } else { } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("P1", "test"); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 cmnDao.SetUserParameter("COLUMN", " " + orderColumn + " "); cmnDao.SetUserParameter("SEQUENCE", " " + orderSequence + " "); // 戻り値 dt DataTable dt = new DataTable(); // 共通Daoを実行 cmnDao.ExecSelectFill_DT(dt); // 自動生成Daoを実行 testReturn.Obj = dt; break; //case "generate": // 自動生成Daoを使用する。 // // 当該SQLなし // break; default: // 個別Daoを使用する。 LayerD myDao = new LayerD(this.GetDam()); myDao.SelectAll_DSQL(testParameter, testReturn); break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <summary>一覧を返すSELECTクエリを実行する(DR)</summary> /// <param name="testParameter">引数クラス</param> /// <param name="testReturn">戻り値クラス</param> public void SelectAll_DR(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- string commandText = ""; if ((testParameter.ActionType.Split('%'))[2] == "static") { // 静的SQL commandText = "SELECT * FROM Shippers"; } else if ((testParameter.ActionType.Split('%'))[2] == "dynamic") { // 動的SQL commandText = "<?xml version=\"1.0\" encoding=\"shift_jis\" ?><ROOT>SELECT * FROM Shippers</ROOT>"; // 通常、動的SQLをSetSqlByCommandで直接指定するような使い方はしない。 } // -- 直接指定する場合。 this.SetSqlByCommand(commandText); // 戻り値 dt DataTable dt = new DataTable(); // 3列生成 dt.Columns.Add("c1", System.Type.GetType("System.String")); dt.Columns.Add("c2", System.Type.GetType("System.String")); dt.Columns.Add("c3", System.Type.GetType("System.String")); // -- 一覧を返すSELECTクエリを実行する IDataReader idr = (IDataReader)this.ExecSelect_DR(); while (idr.Read()) { // DRから読む object[] objArray = new object[3]; idr.GetValues(objArray); // DTに設定する。 DataRow dr = dt.NewRow(); dr.ItemArray = objArray; dt.Rows.Add(dr); } // 終了したらクローズ idr.Close(); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = dt; }
/// <summary>業務処理を実装</summary> /// <param name="testParameter">引数クラス</param> private void UOC_Select(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- DataTable dt = null; switch ((testParameter.ActionType.Split('%'))[1]) { case "common": // 共通Daoを使用する。 // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": // 静的SQLを指定 cmnDao.SQLFileName = "ShipperSelect.sql"; break; case "dynamic": // 動的SQLを指定 cmnDao.SQLFileName = "ShipperSelect.xml"; break; } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("P1", testParameter.ShipperID); // 戻り値 dt dt = new DataTable(); // 共通Daoを実行 cmnDao.ExecSelectFill_DT(dt); // キャストの対策コードを挿入 // ・SQLの場合、ShipperIDのintがInt32型にマップされる。 // ・ODPの場合、ShipperIDのNUMBERがInt64型にマップされる。 // ・DB2の場合、ShipperIDのDECIMALがxxx型にマップされる。 if (dt.Rows[0].ItemArray.GetValue(0).GetType().ToString() == "System.Int32") { // Int32なのでキャスト testReturn.ShipperID = (int)dt.Rows[0].ItemArray.GetValue(0); } else { // それ以外の場合、一度、文字列に変換してInt32.Parseする。 testReturn.ShipperID = int.Parse(dt.Rows[0].ItemArray.GetValue(0).ToString()); } testReturn.CompanyName = (string)dt.Rows[0].ItemArray.GetValue(1); testReturn.Phone = (string)dt.Rows[0].ItemArray.GetValue(2); break; case "generate": // 自動生成Daoを使用する。 // 自動生成Daoを生成 DaoShippers genDao = new DaoShippers(this.GetDam()); // パラメタに対して、動的に値を設定する。 genDao.PK_ShipperID = testParameter.ShipperID; // 戻り値 dt dt = new DataTable(); // 自動生成Daoを実行 genDao.S2_Select(dt); // キャストの対策コードを挿入 // ・SQLの場合、ShipperIDのintがInt32型にマップされる。 // ・ODPの場合、ShipperIDのNUMBERがInt64型にマップされる。 // ・DB2の場合、ShipperIDのDECIMALがxxx型にマップされる。 if (dt.Rows[0].ItemArray.GetValue(0).GetType().ToString() == "System.Int32") { // Int32なのでキャスト testReturn.ShipperID = (int)dt.Rows[0].ItemArray.GetValue(0); } else { // それ以外の場合、一度、文字列に変換してInt32.Parseする。 testReturn.ShipperID = int.Parse(dt.Rows[0].ItemArray.GetValue(0).ToString()); } testReturn.CompanyName = (string)dt.Rows[0].ItemArray.GetValue(1); testReturn.Phone = (string)dt.Rows[0].ItemArray.GetValue(2); break; default: // 個別Daoを使用する。 LayerD myDao = new LayerD(this.GetDam()); myDao.Select(testParameter, testReturn); break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <summary>1レコードを返すSELECTクエリを実行する</summary> /// <param name="testParameter">引数クラス</param> /// <param name="testReturn">戻り値クラス</param> public void Select(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- string filename = ""; if ((testParameter.ActionType.Split('%'))[2] == "static") { // 静的SQL filename = "ShipperSelect.sql"; } else if ((testParameter.ActionType.Split('%'))[2] == "dynamic") { // 動的SQL filename = "ShipperSelect.xml"; } // -- ファイルから読み込む場合。 this.SetSqlByFile2(filename); // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 this.SetParameter("P1", testParameter.ShipperID); // 戻り値 dt DataTable dt = new DataTable(); // -- 1レコードを返すSELECTクエリを実行する this.ExecSelectFill_DT(dt); // ↑DBアクセス----------------------------------------------------- //// 戻り値を設定 // 不要 //testReturn.Obj = dt; // キャストの対策コードを挿入 // ・SQLの場合、ShipperIDのintがInt32型にマップされる。 // ・ODPの場合、ShipperIDのNUMBERがInt64型にマップされる。 // ・DB2の場合、ShipperIDのDECIMALがxxx型にマップされる。 if (dt.Rows[0].ItemArray.GetValue(0).GetType().ToString() == "System.Int32") { // Int32なのでキャスト testReturn.ShipperID = (int)dt.Rows[0].ItemArray.GetValue(0); } else { // それ以外の場合、一度、文字列に変換してInt32.Parseする。 testReturn.ShipperID = int.Parse(dt.Rows[0].ItemArray.GetValue(0).ToString()); } testReturn.CompanyName = (string)dt.Rows[0].ItemArray.GetValue(1); testReturn.Phone = (string)dt.Rows[0].ItemArray.GetValue(2); }
/// <summary>業務処理を実装</summary> /// <param name="testParameter">引数クラス</param> private void UOC_Insert(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- switch ((testParameter.ActionType.Split('%'))[1]) { case "common": // 共通Daoを使用する。 // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); cmnDao.SQLFileName = "ShipperInsert.sql"; // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("P2", testParameter.CompanyName); cmnDao.SetParameter("P3", testParameter.Phone); // 共通Daoを実行 // 戻り値を設定 testReturn.Obj = cmnDao.ExecInsUpDel_NonQuery(); break; case "generate": // 自動生成Daoを使用する。 // 自動生成Daoを生成 DaoShippers genDao = new DaoShippers(this.GetDam()); // パラメタに対して、動的に値を設定する。 genDao.CompanyName = testParameter.CompanyName; genDao.Phone = testParameter.Phone; // 自動生成Daoを実行 // 戻り値を設定 testReturn.Obj = genDao.D1_Insert(); break; default: // 個別Daoを使用する。 LayerD myDao = new LayerD(this.GetDam()); myDao.Insert(testParameter, testReturn); break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <summary>Deleteクエリを実行する</summary> /// <param name="testParameter">引数クラス</param> /// <param name="testReturn">戻り値クラス</param> public void Delete(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- string filename = ""; if ((testParameter.ActionType.Split('%'))[2] == "static") { // 静的SQL filename = "ShipperDelete.sql"; } else if ((testParameter.ActionType.Split('%'))[2] == "dynamic") { // 動的SQL filename = "ShipperDelete.xml"; } // -- ファイルから読み込む場合。 this.SetSqlByFile2(filename); // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 this.SetParameter("P1", testParameter.ShipperID); object obj; // -- 追削除(件数を確認できる) obj = this.ExecInsUpDel_NonQuery(); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = obj; }
/// <summary>業務処理を実装</summary> /// <param name="testParameter">引数クラス</param> private void UOC_Delete(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- switch ((testParameter.ActionType.Split('%'))[1]) { case "common": // 共通Daoを使用する。 // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": // 静的SQLを指定 cmnDao.SQLFileName = "ShipperDelete.sql"; break; case "dynamic": // 動的SQLを指定 cmnDao.SQLFileName = "ShipperDelete.xml"; break; } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 cmnDao.SetParameter("P1", testParameter.ShipperID); // 共通Daoを実行 // 戻り値を設定 testReturn.Obj = cmnDao.ExecInsUpDel_NonQuery(); break; case "generate": // 自動生成Daoを使用する。 // 自動生成Daoを生成 DaoShippers genDao = new DaoShippers(this.GetDam()); // パラメタに対して、動的に値を設定する。 genDao.PK_ShipperID = testParameter.ShipperID; // 自動生成Daoを実行 // 戻り値を設定 testReturn.Obj = genDao.S4_Delete(); break; default: // 個別Daoを使用する。 LayerD myDao = new LayerD(this.GetDam()); myDao.Delete(testParameter, testReturn); break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }
/// <summary> /// TestSqlsvr4a Method /// </summary> /// <param name="testParameter">testParameter</param> /// <param name="testReturn">testReturn</param> public void TestSqlsvr4a(TestParameterValue testParameter, TestReturnValue testReturn) { // ↓DBアクセス----------------------------------------------------- string filename = ""; if ((testParameter.ActionType.Split('%'))[2] == "static") { // 静的SQL filename = "testSqlsvr4a.dpq.xml"; } else if ((testParameter.ActionType.Split('%'))[2] == "dynamic") { // 動的SQL filename = "testSqlsvr4a.dpq.xml"; // 通常、動的SQLをSetSqlByCommandで直接指定するような使い方はしない。 } this.SetSqlByFile2(filename); string orderColumn = ""; string orderSequence = ""; if (testParameter.OrderColumn == "c1") { orderColumn = "companyname"; } else if (testParameter.OrderColumn == "c2") { orderColumn = "CompanyName"; } else if (testParameter.OrderColumn == "c3") { orderColumn = "CompanyName"; } if (testParameter.OrderSequence == "A") { orderSequence = "ASC"; } else if (testParameter.OrderSequence == "D") { orderSequence = "DESC"; } // パラメタ ライズド クエリのパラメタに対して、動的に値を設定する。 this.SetParameter("P1", "test"); this.SetParameter("P2", "test"); // ユーザ入力は指定しない。 // ※ 動的SQLのVALタグは、前後の空白をつめることが有るので、 // 必要であれば、前後の空白を明示的に指定する必要がある。 this.SetUserParameter("COLUMN", orderColumn); this.SetUserParameter("SEQUENCE", " " + orderSequence + " "); this.SetParameter("j1", true); this.SetParameter("j2", true); // 戻り値 ds DataSet ds = new DataSet(); // -- 一覧を返すSELECTクエリを実行する this.ExecSelectFill_DS(ds); // ↑DBアクセス----------------------------------------------------- // 戻り値を設定 testReturn.Obj = ds; }
/// <summary>CallBusinessLogic Method</summary> /// <param name="screen">screen ID</param> /// <param name="buttonID">Button ID</param> /// <param name="action">Control action name</param> /// <param name="dbGeneration">Db Generation</param> /// <param name="user">User Info</param> /// <param name="ipAddress">Ip address</param> /// <param name="isolationLevel">Isolation level</param> /// <param name="testParameterValue">Test Parameter values</param> /// <returns>resultTestReturnValue</returns> /// <returns>expectedTestReturnValue</returns> private void CallBusinessLogic(string screen, string buttonID, string action, string dbGeneration, string user, string ipAddress, string isolationLevel, TestParameterValue testParameterValue, out TestReturnValue resultTestReturnValue, out TestReturnValue expectedTestReturnValue) { // 分離レベルの設定 DbEnum.IsolationLevelEnum iso = SelectIsolationLevel(isolationLevel); // B層を生成 LayerB myBusiness = new LayerB(); // 業務処理を実行 resultTestReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic((BaseParameterValue)testParameterValue, iso); expectedTestReturnValue = (TestReturnValue)myBusiness.DoBusinessLogic((BaseParameterValue)testParameterValue, iso); }
/// <summary> /// 業務処理を実装 /// </summary> /// <param name="parameterValue">引数クラス</param> /// <param name="returnValue">戻り値クラス</param> protected override void UOC_DoAction(BaseParameterValue parameterValue, ref BaseReturnValue returnValue) { // 引数クラスをアップキャスト TestParameterValue testParameter = (TestParameterValue)parameterValue; // 戻り値クラスを生成 TestReturnValue testReturn = new TestReturnValue(); // 戻り値クラスをダウンキャストして戻す returnValue = (BaseReturnValue)testReturn; // --- // トランザクション パターンIDの領域 string[] transactionPatternIDs; // トランザクション グループIDからトランザクション パターンIDを取得 BaseLogic.GetTransactionPatterns( (string)testParameter.Obj, out transactionPatternIDs); // トランザクション パターンIDを設定 testReturn.Obj = transactionPatternIDs; #region Damを初期化 // トランザクション グループIDから取得した、 // トランザクション パターンIDでDam初期化する。 foreach (string transactionPatternID in transactionPatternIDs) { BaseDam tempDam = null; if (transactionPatternID.IndexOf("SQL") != -1) { // DamSqlSvrを初期化してセット tempDam = new DamSqlSvr(); BaseLogic.InitDam(transactionPatternID, tempDam); this.SetDam(transactionPatternID, tempDam); } else if (transactionPatternID.IndexOf("ODP") != -1) { // DamOraOdpを初期化してセット tempDam = new DamOraOdp(); BaseLogic.InitDam(transactionPatternID, tempDam); this.SetDam(transactionPatternID, tempDam); } else if (transactionPatternID.IndexOf("DB2") != -1) { // DamDB2を初期化してセット tempDam = new DamDB2(); BaseLogic.InitDam(transactionPatternID, tempDam); this.SetDam(transactionPatternID, tempDam); } else if (transactionPatternID.IndexOf("MCN") != -1) { // DamMySQLを初期化してセット tempDam = new DamMySQL(); BaseLogic.InitDam(transactionPatternID, tempDam); this.SetDam(transactionPatternID, tempDam); } } #endregion #region 終了時の状態選択 #region Damの状態選択 if ((parameterValue.ActionType.Split('%'))[2] == "UT") { // トランザクションあり } else if ((parameterValue.ActionType.Split('%'))[2] == "NT") { // トランザクションなし // → まえもってロールバックしておく // ロールバック foreach (string transactionPatternID in transactionPatternIDs) { this.GetDam(transactionPatternID).RollbackTransaction(); } } else if ((parameterValue.ActionType.Split('%'))[2] == "NC") { // コネクションなし // → まえもってロールバック、コネクションクローズしておく // // ※ トランザクションを開始して // コミットしないで閉じると、ロールバック扱い。 // ロールバック foreach (string transactionPatternID in transactionPatternIDs) { this.GetDam(transactionPatternID).RollbackTransaction(); } // コネクションクローズ foreach (string transactionPatternID in transactionPatternIDs) { this.GetDam(transactionPatternID).ConnectionClose(); } } else if ((parameterValue.ActionType.Split('%'))[2] == "NULL") { // データアクセス制御クラス = Null // → まえもってロールバック、コネクションクローズ、Nullクリアしておく // // ※ トランザクションを開始して // コミットしないで閉じると、ロールバック扱い。 // ロールバック foreach (string transactionPatternID in transactionPatternIDs) { this.GetDam(transactionPatternID).RollbackTransaction(); } // コネクションクローズ foreach (string transactionPatternID in transactionPatternIDs) { this.GetDam(transactionPatternID).ConnectionClose(); } // Nullクリア foreach (string transactionPatternID in transactionPatternIDs) { this.SetDam(transactionPatternID, null); } } #endregion #region エラーのスロー if ((parameterValue.ActionType.Split('%'))[1] == "Business") { // 業務例外のスロー throw new BusinessApplicationException( "ロールバックのテスト", "ロールバックのテスト", "エラー情報"); } else if ((parameterValue.ActionType.Split('%'))[1] == "System") { // システム例外のスロー throw new BusinessSystemException( "ロールバックのテスト", "ロールバックのテスト"); } else if ((parameterValue.ActionType.Split('%'))[1] == "Other") { // その他、一般的な例外のスロー throw new Exception("ロールバックのテスト"); } else if ((parameterValue.ActionType.Split('%'))[1] == "Other-Business") { // その他、一般的な例外(業務例外へ振り替え)のスロー throw new Exception("Other-Business"); } else if ((parameterValue.ActionType.Split('%'))[1] == "Other-System") { // その他、一般的な例外(システム例外へ振り替え)のスロー throw new Exception("Other-System"); } #endregion #endregion }
/// <summary> /// UOC_SelectCase Method /// </summary> /// <param name="testParameter">testParameter</param> private void UOC_SelectCase(TestParameterValue testParameter) { // 戻り値クラスを生成して、事前に戻り地に設定しておく。 TestReturnValue testReturn = new TestReturnValue(); this.ReturnValue = testReturn; // ↓業務処理----------------------------------------------------- switch ((testParameter.ActionType.Split('%'))[1]) { case "generate": break; case "common": // 共通Daoを使用する。 default: // 共通Daoを生成 CmnDao cmnDao = new CmnDao(this.GetDam()); switch ((testParameter.ActionType.Split('%'))[2]) { case "static": switch (testParameter.SelectCase) { case "SelectCase1a": cmnDao.SQLFileName = "select-case1a.dpq.xml"; break; case "SelectCase1b": cmnDao.SQLFileName = "select-case1b.dpq.xml"; break; case "SelectCase2a": cmnDao.SQLFileName = "select-case2a.dpq.xml"; break; case "SelectCase2b": cmnDao.SQLFileName = "select-case2b.dpq.xml"; break; case "SelectCase3a": cmnDao.SQLFileName = "select-case3a.dpq.xml"; break; case "SelectCase3b": cmnDao.SQLFileName = "select-case3b.dpq.xml"; break; case "SelectCase4a": cmnDao.SQLFileName = "select-case4a.dpq.xml"; break; case "SelectCase4b": cmnDao.SQLFileName = "select-case4b.dpq.xml"; break; case "SelectCase5a": cmnDao.SQLFileName = "select-case5a.dpq.xml"; break; case "SelectCase5b": cmnDao.SQLFileName = "select-case5b.dpq.xml"; break; case "SelectCaseDefault1a": cmnDao.SQLFileName = "select-case-default1a.dpq.xml"; break; case "SelectCaseDefault1b": cmnDao.SQLFileName = "select-case-default1b.dpq.xml"; break; case "SelectCaseDefault2a": cmnDao.SQLFileName = "select-case-default2a.dpq.xml"; break; case "SelectCaseDefault2b": cmnDao.SQLFileName = "select-case-default2b.dpq.xml"; break; case "SelectCaseDefault3a": cmnDao.SQLFileName = "select-case-default3a.dpq.xml"; break; case "SelectCaseDefault3b": cmnDao.SQLFileName = "select-case-default3b.dpq.xml"; break; case "SelectCaseDefault4a": cmnDao.SQLFileName = "select-case-default4a.dpq.xml"; break; case "SelectCaseDefault4b": cmnDao.SQLFileName = "select-case-default4b.dpq.xml"; break; } break; case "dynamic": switch (testParameter.SelectCase) { case "SelectCase1a": cmnDao.SQLFileName = "select-case1a.dpq.xml"; break; case "SelectCase1b": cmnDao.SQLFileName = "select-case1b.dpq.xml"; break; case "SelectCase2a": cmnDao.SQLFileName = "select-case2a.dpq.xml"; break; case "SelectCase2b": cmnDao.SQLFileName = "select-case2b.dpq.xml"; break; case "SelectCase3a": cmnDao.SQLFileName = "select-case3a.dpq.xml"; break; case "SelectCase3b": cmnDao.SQLFileName = "select-case3b.dpq.xml"; break; case "SelectCase4a": cmnDao.SQLFileName = "select-case4a.dpq.xml"; break; case "SelectCase5a": cmnDao.SQLFileName = "select-case5a.dpq.xml"; break; case "SelectCase5b": cmnDao.SQLFileName = "select-case5b.dpq.xml"; break; case "SelectCase4b": cmnDao.SQLFileName = "select-case4b.dpq.xml"; break; case "SelectCaseDefault1a": cmnDao.SQLFileName = "select-case-default1a.dpq.xml"; break; case "SelectCaseDefault1b": cmnDao.SQLFileName = "select-case-default1b.dpq.xml"; break; case "SelectCaseDefault2a": cmnDao.SQLFileName = "select-case-default2a.dpq.xml"; break; case "SelectCaseDefault2b": cmnDao.SQLFileName = "select-case-default2b.dpq.xml"; break; case "SelectCaseDefault3a": cmnDao.SQLFileName = "select-case-default3a.dpq.xml"; break; case "SelectCaseDefault3b": cmnDao.SQLFileName = "select-case-default3b.dpq.xml"; break; case "SelectCaseDefault4a": cmnDao.SQLFileName = "select-case-default4a.dpq.xml"; break; case "SelectCaseDefault4b": cmnDao.SQLFileName = "select-case-default4b.dpq.xml"; break; } break; } switch (testParameter.SelectCase) { // Select Case case "SelectCase1a": cmnDao.SetParameter("sel", "a1"); break; case "SelectCase1b": cmnDao.SetParameter("sel", 111); break; case "SelectCase2a": cmnDao.SetParameter("sel", "b2"); break; case "SelectCase2b": cmnDao.SetParameter("sel", 222); break; case "SelectCase3a": cmnDao.SetParameter("sel", "c3"); break; case "SelectCase3b": cmnDao.SetParameter("sel", 333); break; case "SelectCase4a": cmnDao.SetParameter("sel", "xxx"); break; case "SelectCase4b": cmnDao.SetParameter("sel", 999); break; case "SelectCase5a": break; case "SelectCase5b": cmnDao.SetParameter("sel", ""); break; //Select Case Default case "SelectCaseDefault1a": cmnDao.SetParameter("sel", "a1"); break; case "SelectCaseDefault1b": cmnDao.SetParameter("sel", 111); break; case "SelectCaseDefault2a": cmnDao.SetParameter("sel", "b2"); break; case "SelectCaseDefault2b": cmnDao.SetParameter("sel", 222); break; case "SelectCaseDefault3a": cmnDao.SetParameter("sel", "c3"); break; case "SelectCaseDefault3b": cmnDao.SetParameter("sel", 333); break; case "SelectCaseDefault4a": cmnDao.SetParameter("sel", "xxx"); break; case "SelectCaseDefault4b": cmnDao.SetParameter("sel", 999); break; } // 戻り値 dt DataTable dt = new DataTable(); // 共通Daoを実行 cmnDao.ExecSelectFill_DT(dt); // 自動生成Daoを実行 testReturn.Obj = dt; break; } // ↑業務処理----------------------------------------------------- // ロールバックのテスト this.TestRollback(testParameter); }