/// <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>業務処理を実装</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性能対策 - Open 棟梁 Wiki // https://opentouryo.osscons.jp/index.php?%E8%87%AA%E5%8B%95%E7%94%9F%E6%88%90Dao%E6%80%A7%E8%83%BD%E5%AF%BE%E7%AD%96 // 自動生成Daoを生成 // https://www.guidgenerator.com/online-guid-generator.aspx DaoShippers genDao = new DaoShippers(this.GetDam(), "f54d4d7bd5c8441187ec6939c4da7303"); // パラメタに対して、動的に値を設定する。 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); }