private void InsertResult(string id, Dictionary <int, double[][]> resByPol) { // 데이터 전환 to list<object[]> var lst = new List <object[]>(); object[] obj; var now = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); foreach (var kv in resByPol) { for (int rowNo = 0; rowNo < kv.Value.Length; rowNo++) { obj = new object[14]; obj[0] = id; obj[1] = now; obj[2] = kv.Key; obj[3] = (RSettings.InsertsByMth ? rowNo + 1 : 0); for (int i = 0; i < kv.Value[rowNo].Length; i++) { obj[4 + i] = kv.Value[rowNo][i]; } lst.Add(obj); } } // db입력 var dbParams = new Tools.DBConnParams(); dbParams.InitMY(); Tools.MySqlDBConn dbConn = new Tools.MySqlDBConn(dbParams); dbConn.Insert(lst, @"proj_result"); }
public static void TestCloud(string[] args) { Console.WriteLine("프로그램 시작"); var irs = new List <double> { 0.01 }; for (int i = 1; i < 14; i++) { irs.Add(0.01 + 0.001 * i); } var sp = new LiabilityCalc.ScenParams() { SourceCurve = irs, HW_a = 0.1, HW_sigma = 0.01, EqSigma = 0.27, BondSigma = 0.01 }; ScenarioManager sm = new ScenarioManager(sp, 1200); Tools.DBConnParams dbP = new Tools.DBConnParams(new string[] { args[1], args[2], args[3], args[4] }); int scenCnt = 100; sm.SetScenDataFromFile(scenCnt); Console.WriteLine("시나리오 생성 완료"); for (int i = 1; i <= scenCnt; i++) { sm.SetCurrentScen(i); InsertScenToDB(args[0], sm.CurrentScenNo, sm.CurrentScenData, dbP); Console.WriteLine($@"시나리오 {i}번 입력 완료"); } }
public Runner(RunSettings rs, TableManager tm, ScenarioManager sm, Tools.DBConnParams dp) { RSettings = rs; TM = tm; SM = sm; DbParams = dp; }
public static void InsertMort() { var dt = new List <object[]>(); var line = new object[121 + 3]; line[0] = "2009"; line[1] = "UL"; line[2] = 1; for (int age = 0; age <= 120; age++) { if (age == 120) { line[age + 3] = 1.0; } else { line[age + 3] = 0.001 * age; } } dt.Add(line); line = new object[121 + 3]; line[0] = "2009"; line[1] = "UL"; line[2] = 2; for (int age = 0; age <= 120; age++) { if (age == 120) { line[age + 3] = 1.0; } else { line[age + 3] = (0.001 * age) * 0.8; } } dt.Add(line); var dp = new Tools.DBConnParams(); dp.InitMY(); Tools.MySqlDBConn conn = new Tools.MySqlDBConn(dp); conn.Insert(dt, "mortality"); }
public ProjRunner(string[] args) { try { runGuid = args[0]; // 디비 연결 dbP = new Tools.DBConnParams() { ServerName = @"kkhproj-db.czuxn57jn8hk.ap-northeast-2.rds.amazonaws.com", ServerID = "admin", ServerPW = "kkh198400", DbName = "proj" }; msConn = new Tools.MsSqlDbConn(dbP); // 런 인포 받아오기 string query = $@"select top 1 id, arguments from RunInfo where guid = '{runGuid}'"; var runArgs = msConn.GetResult(query)[0]; jobId = runArgs[0].ToString(); infId = runArgs[1].ToString().Split(' ')[0]; scenId = runArgs[1].ToString().Split(' ')[1]; // 환경변수 가져오기 machineName = Environment.GetEnvironmentVariable("kkhproj", EnvironmentVariableTarget.User); // 인포스 시작, 끝 가져오기 query = $@"select top 1 StartNo, EndNo from RunStatus where guid ='{runGuid}' and machinename = '{machineName}'"; var res = msConn.GetResult(query)[0]; int sInf = Convert.ToInt32(res[0]); int eInf = Convert.ToInt32(res[1]); // 상태 업데이트 WriteLog("Running"); Console.WriteLine($@"Ready to Run {machineName}"); // 런파라미터 rs = new RunSettings(); rs.IdMP = infId; rs.MpNoStart = sInf; rs.MpNoEnd = eInf; rs.ResultLabel = jobId; rs.ScenCntOneBatch = 1000; rs.ScenBatchCnt = 1; rs.InsertsByPol = true; rs.InsertsByScen = false; } catch (Exception e) { WriteLog("Failed_Init \n" + e.ToString()); throw new Exception("Fail to start program"); } }
public void LoadRecords(Tools.DBConnParams dbParams) { Tools.IDbConnection dbConn = new Tools.MsSqlDbConn(dbParams); //string query = $@"select * from Records where id = '{whereID}' and elapsedmth=60 and premyr=10 and startageofsomething = 60 limit 1"; string query = $@"select * from Records where id = '{RSettings.IdMP}' and contno >= {RSettings.MpNoStart} and contno <= {RSettings.MpNoEnd}"; var recsFrom = dbConn.GetResult(query); if (recsFrom.Count == 0) { throw new Exception("no recs for db"); } Recs = Tools.LibsData.GetInstance <Record>(recsFrom); }
public static void InsertLapse() { var dt = new List <object[]>(); // 1번째 라인 var line = new object[120 + 3]; line[0] = "2009"; line[1] = "UL"; line[2] = "InPayment"; for (int yr = 1; yr <= 120; yr++) { if (yr >= 20) { line[yr + 2] = 0.03; } else { line[yr + 2] = Math.Max(0.03, 0.1 - yr * 0.01); } } dt.Add(line); // 2번째 라인 line = new object[120 + 3]; line[0] = "2009"; line[1] = "UL"; line[2] = "AfterPayment"; for (int yr = 1; yr <= 120; yr++) { line[yr + 2] = 0.03; } dt.Add(line); var dp = new Tools.DBConnParams(); dp.InitMY(); Tools.MySqlDBConn conn = new Tools.MySqlDBConn(dp); conn.Insert(dt, "lapse"); }
public static void TestDB() { //Tools.DBConnParams dbPMS = new Tools.DBConnParams(); //dbPMS.InitMS(); //Tools.IDbConnection connMS = new Tools.MsSqlDbConn(dbPMS); Tools.DBConnParams dbPMY = new Tools.DBConnParams(); dbPMY.InitMY(); Tools.IDbConnection connMY = new Tools.MySqlDBConn(dbPMY); var dbP = new Tools.DBConnParams() { ServerName = @"kkhproj-db.czuxn57jn8hk.ap-northeast-2.rds.amazonaws.com", ServerID = "admin", ServerPW = "kkh198400", DbName = "proj" }; Tools.MsSqlDbConn connMS2 = new Tools.MsSqlDbConn(dbP); IDataReader dr = connMY.GetDataReader($@"select * from lapse"); connMS2.Insert(dr, "lapse"); dr = connMY.GetDataReader($@"select * from mortality"); connMS2.Insert(dr, "mortality"); }
public TableManager(RunSettings rs, Tools.DBConnParams dbParams) { RunSets = rs; DbConn = new Tools.MsSqlDbConn(dbParams); }
public static void InsertScenToDB(string id, int currentScenNo, Dictionary <ScenType, double[]> currentScenData, Tools.DBConnParams dbP) { // 데이터 전환 to list<object[]> // id, asset, scenno, val var lst = new List <object[]>(); object[] obj; foreach (var kv in currentScenData) { string asset = kv.Key.ToString(); for (int i = 0; i < kv.Value.Length; i++) { obj = new object[5]; obj[0] = id; obj[1] = asset; obj[2] = currentScenNo; obj[3] = i; obj[4] = kv.Value[i]; lst.Add(obj); } } // db입력 Tools.MsSqlDbConn dbConn = new Tools.MsSqlDbConn(dbP); //Tools.MySqlDBConn dbConn = new Tools.MySqlDBConn(dbP); dbConn.Insert(lst, @"TestScen"); }