CDSVdsF.cpp 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSVdsF.h"
  4. #include "ITSDbF.h"
  5. #include "AppGlobalF.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. TItsVdsDtctCndt::TItsVdsDtctCndt()
  9. {
  10. FCompleted = false;
  11. FEditMode = DB_INIT;
  12. FGridIndex = -1;
  13. MEM_DEL = "N";
  14. //Clear();
  15. }
  16. //---------------------------------------------------------------------------
  17. void TItsVdsDtctCndt::Clear()
  18. {
  19. CTLR_MNGM_NMBR = "";
  20. DTCT_NMBR = "";
  21. SYST_KIND_DVSN = "";
  22. MAX_TFVL = "";
  23. MIN_TFVL = "";
  24. MAX_OCPY_RATE = "";
  25. MIN_OCPY_RATE = "";
  26. MAX_SPED = "";
  27. MIN_SPED = "";
  28. DEL_YN = "";
  29. FRST_REGR_NMBR = "";
  30. FRST_RGST_DT = "";
  31. LAST_CRPR_NMBR = "";
  32. LAST_CRCT_DT = "";
  33. MEM_DEL = "";
  34. }
  35. //---------------------------------------------------------------------------
  36. TItsVdsDtctCndt::~TItsVdsDtctCndt()
  37. {
  38. }
  39. //---------------------------------------------------------------------------
  40. TItsVdsDtctParam::TItsVdsDtctParam()
  41. {
  42. FCompleted = false;
  43. FEditMode = DB_INIT;
  44. FGridIndex = -1;
  45. MEM_DEL = "N";
  46. //Clear();
  47. }
  48. //---------------------------------------------------------------------------
  49. void TItsVdsDtctParam::Clear()
  50. {
  51. CTLR_MNGM_NMBR = "";
  52. DTCT_NMBR = "";
  53. SYST_KIND_DVSN = "";
  54. TFVL_FCTR = "";
  55. OCPY_RATE_FCTR = "";
  56. SPED_FCTR = "";
  57. HDWY_FCTR = "";
  58. FRST_REGR_NMBR = "";
  59. FRST_RGST_DT = "";
  60. LAST_CRPR_NMBR = "";
  61. LAST_CRCT_DT = "";
  62. DEL_YN = "";
  63. MEM_DEL = "";
  64. }
  65. //---------------------------------------------------------------------------
  66. TItsVdsDtctParam::~TItsVdsDtctParam()
  67. {
  68. }
  69. //---------------------------------------------------------------------------
  70. TItsVdsDtctLink::TItsVdsDtctLink()
  71. {
  72. FCompleted = false;
  73. FEditMode = DB_INIT;
  74. FGridIndex = -1;
  75. MEM_DEL = "N";
  76. //Clear();
  77. }
  78. //---------------------------------------------------------------------------
  79. void TItsVdsDtctLink::Clear()
  80. {
  81. CTLR_MNGM_NMBR = "";
  82. DTCT_NMBR = "";
  83. LINK_ID = "";
  84. MEM_DEL = "";
  85. }
  86. //---------------------------------------------------------------------------
  87. TItsVdsDtctLink::~TItsVdsDtctLink()
  88. {
  89. }
  90. //---------------------------------------------------------------------------
  91. TItsVdsDtct::TItsVdsDtct()
  92. {
  93. FCompleted = false;
  94. FEditMode = DB_INIT;
  95. FGridIndex = -1;
  96. MEM_DEL = "N";
  97. //Clear();
  98. }
  99. //---------------------------------------------------------------------------
  100. void TItsVdsDtct::Clear()
  101. {
  102. CTLR_MNGM_NMBR = "";
  103. DTCT_NMBR = "";
  104. DTCT_TYPE_CD = "";
  105. STLN_DSTC = "";
  106. ISTL_LANE = "";
  107. DET_NMBR = "";
  108. SNST = "";
  109. DTCT_VALD_DSTC = "";
  110. MDVH_UPLM_LNGT = "";
  111. MDVH_LWLM_LNGT = "";
  112. USE_YN = "";
  113. CHNL_NMBR = "";
  114. DLTR_NMBR = "";
  115. DEL_DT = "";
  116. DEL_YN = "";
  117. FRST_REGR_NMBR = "";
  118. FRST_RGST_DT = "";
  119. LAST_CRPR_NMBR = "";
  120. LAST_CRCT_DT = "";
  121. MEM_DEL = "";
  122. }
  123. //---------------------------------------------------------------------------
  124. TItsVdsDtct::~TItsVdsDtct()
  125. {
  126. }
  127. //---------------------------------------------------------------------------
  128. TItsVds::TItsVds()
  129. {
  130. FCompleted = false;
  131. FEditMode = DB_INIT;
  132. FGridIndex = -1;
  133. MEM_DEL = "N";
  134. //Clear();
  135. FData1 = NULL;
  136. FData2 = NULL;
  137. FData3 = NULL;
  138. FMarker = NULL;
  139. }
  140. //---------------------------------------------------------------------------
  141. void TItsVds::Clear()
  142. {
  143. CTLR_MNGM_NMBR = "";
  144. CTLR_TYPE_CD = "";
  145. VALD_YN = "";
  146. X_CRDN = "";
  147. Y_CRDN = "";
  148. LCTN = "";
  149. TRMN_IP = "";
  150. TRMN_PORT = "";
  151. CTLR_CLCT_CYCL = "";
  152. CTLR_STTS_CYCL = "";
  153. LOOP_BORD_NUM = "";
  154. DLTR_NMBR = "";
  155. DEL_DT = "";
  156. DEL_YN = "";
  157. FRST_REGR_NMBR = "";
  158. FRST_RGST_DT = "";
  159. LAST_CRPR_NMBR = "";
  160. LAST_CRCT__DT = "";
  161. MEM_DEL = "";
  162. }
  163. //---------------------------------------------------------------------------
  164. TItsVds::~TItsVds()
  165. {
  166. }
  167. //---------------------------------------------------------------------------
  168. //---------------------------------------------------------------------------
  169. TItsVdsManager *ItsVdsManager = NULL;
  170. //---------------------------------------------------------------------------
  171. /*
  172. * Vds Manager
  173. */
  174. TItsVdsManager::TItsVdsManager()
  175. {
  176. }
  177. //---------------------------------------------------------------------------
  178. TItsVdsManager::~TItsVdsManager()
  179. {
  180. FLists.RemoveAll();
  181. }
  182. //---------------------------------------------------------------------------
  183. bool TItsVdsManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  184. {
  185. String sQry;
  186. TADOQuery *pADO = NULL;
  187. sQry = "SELECT CTLR_MNGM_NMBR, \r\n"
  188. " CTLR_TYPE_CD, \r\n"
  189. " VALD_YN, \r\n"
  190. " X_CRDN, \r\n"
  191. " Y_CRDN, \r\n"
  192. " LCTN, \r\n"
  193. " TRMN_IP, \r\n"
  194. " TRMN_PORT, \r\n"
  195. " CTLR_CLCT_CYCL, \r\n"
  196. " CTLR_STTS_CYCL, \r\n"
  197. " LOOP_BORD_NUM, \r\n"
  198. " DLTR_NMBR, \r\n"
  199. " DEL_DT, \r\n"
  200. " DEL_YN, \r\n"
  201. " FRST_REGR_NMBR, \r\n"
  202. " FRST_RGST_DT, \r\n"
  203. " LAST_CRPR_NMBR, \r\n"
  204. " LAST_CRCT__DT, \r\n"
  205. " VDS_CTLR_ID \r\n"
  206. " FROM TB_VDS_CTLR \r\n";
  207. //" WHERE DEL_YN = 'N' \r\n";
  208. //" ORDER BY CTLR_MNGM_NMBR \r\n";
  209. try
  210. {
  211. FLists.Lock();
  212. FLists.RemoveAll();
  213. try
  214. {
  215. pADO = new TADOQuery(NULL);
  216. pADO->Close();
  217. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  218. pADO->SQL->Clear();
  219. pADO->SQL->Text = sQry;
  220. pADO->Open();
  221. for( ; !pADO->Eof; pADO->Next())
  222. {
  223. TItsVds *pObj = new TItsVds();
  224. pObj->CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString;
  225. pObj->CTLR_TYPE_CD = pADO->FieldByName("CTLR_TYPE_CD")->AsString;
  226. pObj->VALD_YN = pADO->FieldByName("VALD_YN")->AsString;
  227. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  228. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  229. pObj->LCTN = pADO->FieldByName("LCTN")->AsString;
  230. pObj->TRMN_IP = pADO->FieldByName("TRMN_IP")->AsString;
  231. pObj->TRMN_PORT = pADO->FieldByName("TRMN_PORT")->AsString;
  232. pObj->CTLR_CLCT_CYCL = pADO->FieldByName("CTLR_CLCT_CYCL")->AsString;
  233. pObj->CTLR_STTS_CYCL = pADO->FieldByName("CTLR_STTS_CYCL")->AsString;
  234. pObj->LOOP_BORD_NUM = pADO->FieldByName("LOOP_BORD_NUM")->AsString;
  235. pObj->DLTR_NMBR = pADO->FieldByName("DLTR_NMBR")->AsString;
  236. pObj->DEL_DT = pADO->FieldByName("DEL_DT")->AsString;
  237. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  238. pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString;
  239. pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString;
  240. pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString;
  241. pObj->LAST_CRCT__DT = pADO->FieldByName("LAST_CRCT__DT")->AsString;
  242. pObj->VDS_CTLR_ID = pADO->FieldByName("VDS_CTLR_ID")->AsString;
  243. FLists.Push(pObj->CTLR_MNGM_NMBR, pObj);
  244. pObj->Completed = true;
  245. pObj->MEM_DEL = "N";
  246. }
  247. }
  248. catch(EDatabaseError &E)
  249. {
  250. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  251. DBERRORMSG("TItsVdsManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
  252. throw Exception(String(E.ClassName()) + E.Message);
  253. }
  254. catch(Exception &exception)
  255. {
  256. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  257. DBERRORMSG("TItsVdsManager::LoadFromDb", String(exception.ClassName()), exception.Message, sQry);
  258. throw Exception(String(exception.ClassName()) + exception.Message);
  259. }
  260. }
  261. __finally
  262. {
  263. if (pADO)
  264. {
  265. pADO->Close();
  266. delete pADO;
  267. }
  268. FLists.UnLock();
  269. }
  270. return true;
  271. }
  272. //---------------------------------------------------------------------------
  273. bool TItsVdsManager::LoadFromDtctDb(TADOConnection *ADbConn/*=NULL*/)
  274. {
  275. String sQry;
  276. TADOQuery *pADO = NULL;
  277. sQry = "SELECT DTCT_NMBR, \r\n"
  278. " DTCT_TYPE_CD, \r\n"
  279. " STLN_DSTC, \r\n"
  280. " ISTL_LANE, \r\n"
  281. " DET_NMBR, \r\n"
  282. " SNST, \r\n"
  283. " DTCT_VALD_DSTC, \r\n"
  284. " MDVH_UPLM_LNGT, \r\n"
  285. " MDVH_LWLM_LNGT, \r\n"
  286. " USE_YN, \r\n"
  287. " CHNL_NMBR, \r\n"
  288. " DLTR_NMBR, \r\n"
  289. " DEL_DT, \r\n"
  290. " DEL_YN, \r\n"
  291. " FRST_REGR_NMBR, \r\n"
  292. " FRST_RGST_DT, \r\n"
  293. " LAST_CRPR_NMBR, \r\n"
  294. " LAST_CRCT_DT, \r\n"
  295. #ifdef YONGIN_VDS
  296. " CTLR_MNGM_NMBR, \r\n"
  297. " VDS_DTCT_NM \r\n"
  298. #else
  299. " CTLR_MNGM_NMBR \r\n"
  300. #endif
  301. " FROM TB_VDS_DTCT_MSTR \r\n";
  302. //" WHERE DEL_YN = 'N' \r\n"
  303. //" ORDER BY DTCT_NMBR \r\n";
  304. try
  305. {
  306. TItsVds *pVds;
  307. FLists.Lock();
  308. try
  309. {
  310. pADO = new TADOQuery(NULL);
  311. pADO->Close();
  312. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  313. pADO->SQL->Clear();
  314. pADO->SQL->Text = sQry;
  315. pADO->Open();
  316. for( ; !pADO->Eof; pADO->Next())
  317. {
  318. String CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString;
  319. pVds = FLists.Find(CTLR_MNGM_NMBR);
  320. if (!pVds) continue;
  321. TItsVdsDtct *pObj = new TItsVdsDtct();
  322. pObj->CTLR_MNGM_NMBR = CTLR_MNGM_NMBR;
  323. pObj->DTCT_NMBR = pADO->FieldByName("DTCT_NMBR")->AsString;
  324. pObj->DTCT_TYPE_CD = pADO->FieldByName("DTCT_TYPE_CD")->AsString;
  325. pObj->STLN_DSTC = pADO->FieldByName("STLN_DSTC")->AsString;
  326. pObj->ISTL_LANE = pADO->FieldByName("ISTL_LANE")->AsString;
  327. pObj->DET_NMBR = pADO->FieldByName("DET_NMBR")->AsString;
  328. pObj->SNST = pADO->FieldByName("SNST")->AsString;
  329. pObj->DTCT_VALD_DSTC = pADO->FieldByName("DTCT_VALD_DSTC")->AsString;
  330. pObj->MDVH_UPLM_LNGT = pADO->FieldByName("MDVH_UPLM_LNGT")->AsString;
  331. pObj->MDVH_LWLM_LNGT = pADO->FieldByName("MDVH_LWLM_LNGT")->AsString;
  332. pObj->USE_YN = pADO->FieldByName("USE_YN")->AsString;
  333. pObj->CHNL_NMBR = pADO->FieldByName("CHNL_NMBR")->AsString;
  334. pObj->DLTR_NMBR = pADO->FieldByName("DLTR_NMBR")->AsString;
  335. pObj->DEL_DT = pADO->FieldByName("DEL_DT")->AsString;
  336. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  337. pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString;
  338. pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString;
  339. pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString;
  340. pObj->LAST_CRCT_DT = pADO->FieldByName("LAST_CRCT_DT")->AsString;
  341. #ifdef YONGIN_VDS
  342. pObj->VDS_DTCT_NM = pADO->FieldByName("VDS_DTCT_NM")->AsString;
  343. #endif
  344. pVds->FSubLists.Push(pObj->DTCT_NMBR, pObj);
  345. pObj->Completed = true;
  346. pObj->MEM_DEL = "N";
  347. }
  348. }
  349. catch(EDatabaseError &E)
  350. {
  351. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  352. DBERRORMSG("TItsVdsManager::LoadFromDtctDb", String(E.ClassName()), E.Message, sQry);
  353. throw Exception(String(E.ClassName()) + E.Message);
  354. }
  355. catch(Exception &exception)
  356. {
  357. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  358. DBERRORMSG("TItsVdsManager::LoadFromDtctDb", String(exception.ClassName()), exception.Message, sQry);
  359. throw Exception(String(exception.ClassName()) + exception.Message);
  360. }
  361. }
  362. __finally
  363. {
  364. if (pADO)
  365. {
  366. pADO->Close();
  367. delete pADO;
  368. }
  369. FLists.UnLock();
  370. }
  371. return true;
  372. }
  373. //---------------------------------------------------------------------------
  374. bool TItsVdsManager::LoadFromDtctLinkDb(TADOConnection *ADbConn/*=NULL*/)
  375. {
  376. String sQry;
  377. TADOQuery *pADO = NULL;
  378. sQry = "SELECT A.CTLR_MNGM_NMBR, \r\n"
  379. " A.DTCT_NMBR, \r\n"
  380. " B.LINK_ID \r\n"
  381. " FROM TB_VDS_DTCT_MSTR A, \r\n"
  382. " TB_VDS_DTCT_LINK_RLTN B \r\n"
  383. " WHERE A.DTCT_NMBR = B.DTCT_NMBR \r\n"
  384. " ORDER BY CTLR_MNGM_NMBR \r\n";
  385. try
  386. {
  387. TItsVds *pVds;
  388. TItsVdsDtct *pVdsDtct;
  389. FLists.Lock();
  390. try
  391. {
  392. pADO = new TADOQuery(NULL);
  393. pADO->Close();
  394. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  395. pADO->SQL->Clear();
  396. pADO->SQL->Text = sQry;
  397. pADO->Open();
  398. for( ; !pADO->Eof; pADO->Next())
  399. {
  400. String CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString;
  401. pVds = FLists.Find(CTLR_MNGM_NMBR);
  402. if (!pVds) continue;
  403. String DTCT_NMBR = pADO->FieldByName("DTCT_NMBR")->AsString;
  404. pVdsDtct = pVds->FSubLists.Find(DTCT_NMBR);
  405. if (!pVdsDtct) continue;
  406. TItsVdsDtctLink *pObj = new TItsVdsDtctLink();
  407. pObj->CTLR_MNGM_NMBR = CTLR_MNGM_NMBR;
  408. pObj->DTCT_NMBR = DTCT_NMBR;
  409. pObj->LINK_ID = pADO->FieldByName("LINK_ID")->AsString;
  410. pVdsDtct->FLinkLists.Push(pObj->LINK_ID, pObj);
  411. pObj->Completed = true;
  412. pObj->MEM_DEL = "N";
  413. }
  414. }
  415. catch(EDatabaseError &E)
  416. {
  417. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  418. DBERRORMSG("TItsVdsManager::LoadFromDtctLinkDb", String(E.ClassName()), E.Message, sQry);
  419. throw Exception(String(E.ClassName()) + E.Message);
  420. }
  421. catch(Exception &exception)
  422. {
  423. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  424. DBERRORMSG("TItsVdsManager::LoadFromDtctLinkDb", String(exception.ClassName()), exception.Message, sQry);
  425. throw Exception(String(exception.ClassName()) + exception.Message);
  426. }
  427. }
  428. __finally
  429. {
  430. if (pADO)
  431. {
  432. pADO->Close();
  433. delete pADO;
  434. }
  435. FLists.UnLock();
  436. }
  437. return true;
  438. }
  439. //---------------------------------------------------------------------------
  440. bool TItsVdsManager::LoadFromDtctParamDb(TADOConnection *ADbConn/*=NULL*/)
  441. {
  442. String sQry;
  443. TADOQuery *pADO = NULL;
  444. sQry = "SELECT A.CTLR_MNGM_NMBR, \r\n"
  445. " A.DTCT_NMBR, \r\n"
  446. " B.SYST_KIND_DVSN, \r\n"
  447. " B.TFVL_FCTR, \r\n"
  448. " B.OCPY_RATE_FCTR, \r\n"
  449. " B.SPED_FCTR, \r\n"
  450. " B.HDWY_FCTR, \r\n"
  451. " B.FRST_REGR_NMBR, \r\n"
  452. " B.FRST_RGST_DT, \r\n"
  453. " B.LAST_CRPR_NMBR, \r\n"
  454. " B.LAST_CRCT_DT, \r\n"
  455. " B.DEL_YN \r\n"
  456. " FROM TB_VDS_DTCT_MSTR A, \r\n"
  457. " TB_VDS_DTCT_SMTH_PARA B \r\n"
  458. " WHERE A.DTCT_NMBR = B.DTCT_NMBR \r\n"
  459. " ORDER BY CTLR_MNGM_NMBR \r\n";
  460. try
  461. {
  462. TItsVds *pVds;
  463. TItsVdsDtct *pVdsDtct;
  464. FLists.Lock();
  465. try
  466. {
  467. pADO = new TADOQuery(NULL);
  468. pADO->Close();
  469. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  470. pADO->SQL->Clear();
  471. pADO->SQL->Text = sQry;
  472. pADO->Open();
  473. for( ; !pADO->Eof; pADO->Next())
  474. {
  475. String CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString;
  476. pVds = FLists.Find(CTLR_MNGM_NMBR);
  477. if (!pVds) continue;
  478. String DTCT_NMBR = pADO->FieldByName("DTCT_NMBR")->AsString;
  479. pVdsDtct = pVds->FSubLists.Find(DTCT_NMBR);
  480. if (!pVdsDtct) continue;
  481. TItsVdsDtctParam *pObj = new TItsVdsDtctParam();
  482. pObj->CTLR_MNGM_NMBR = CTLR_MNGM_NMBR;
  483. pObj->DTCT_NMBR = DTCT_NMBR;
  484. pObj->SYST_KIND_DVSN = pADO->FieldByName("SYST_KIND_DVSN")->AsString;
  485. pObj->TFVL_FCTR = pADO->FieldByName("TFVL_FCTR")->AsString;
  486. pObj->OCPY_RATE_FCTR = pADO->FieldByName("OCPY_RATE_FCTR")->AsString;
  487. pObj->SPED_FCTR = pADO->FieldByName("SPED_FCTR")->AsString;
  488. pObj->HDWY_FCTR = pADO->FieldByName("HDWY_FCTR")->AsString;
  489. pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString;
  490. pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString;
  491. pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString;
  492. pObj->LAST_CRCT_DT = pADO->FieldByName("LAST_CRCT_DT")->AsString;
  493. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  494. pVdsDtct->FParamLists.Push(pObj->SYST_KIND_DVSN, pObj);
  495. pObj->Completed = true;
  496. pObj->MEM_DEL = "N";
  497. }
  498. }
  499. catch(EDatabaseError &E)
  500. {
  501. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  502. DBERRORMSG("TItsVdsManager::LoadFromDtctParamDb", String(E.ClassName()), E.Message, sQry);
  503. throw Exception(String(E.ClassName()) + E.Message);
  504. }
  505. catch(Exception &exception)
  506. {
  507. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  508. DBERRORMSG("TItsVdsManager::LoadFromDtctParamDb", String(exception.ClassName()), exception.Message, sQry);
  509. throw Exception(String(exception.ClassName()) + exception.Message);
  510. }
  511. }
  512. __finally
  513. {
  514. if (pADO)
  515. {
  516. pADO->Close();
  517. delete pADO;
  518. }
  519. FLists.UnLock();
  520. }
  521. return true;
  522. }
  523. //---------------------------------------------------------------------------
  524. bool TItsVdsManager::LoadFromDtctCndtDb(TADOConnection *ADbConn/*=NULL*/)
  525. {
  526. String sQry;
  527. TADOQuery *pADO = NULL;
  528. sQry = "SELECT A.CTLR_MNGM_NMBR, \r\n"
  529. " A.DTCT_NMBR, \r\n"
  530. " B.SYST_KIND_DVSN, \r\n"
  531. " B.MAX_TFVL, \r\n"
  532. " B.MIN_TFVL, \r\n"
  533. " B.MAX_OCPY_RATE, \r\n"
  534. " B.MIN_OCPY_RATE, \r\n"
  535. " B.MAX_SPED, \r\n"
  536. " B.MIN_SPED, \r\n"
  537. " B.DEL_YN, \r\n"
  538. " B.FRST_REGR_NMBR, \r\n"
  539. " B.FRST_RGST_DT, \r\n"
  540. " B.LAST_CRPR_NMBR, \r\n"
  541. " B.LAST_CRCT_DT \r\n"
  542. " FROM TB_VDS_DTCT_MSTR A, \r\n"
  543. " TB_VDS_DTCT_RLBL_CNDT B \r\n"
  544. " WHERE A.DTCT_NMBR = B.DTCT_NMBR \r\n"
  545. " ORDER BY CTLR_MNGM_NMBR \r\n";
  546. try
  547. {
  548. TItsVds *pVds;
  549. TItsVdsDtct *pVdsDtct;
  550. FLists.Lock();
  551. try
  552. {
  553. pADO = new TADOQuery(NULL);
  554. pADO->Close();
  555. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  556. pADO->SQL->Clear();
  557. pADO->SQL->Text = sQry;
  558. pADO->Open();
  559. for( ; !pADO->Eof; pADO->Next())
  560. {
  561. String CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString;
  562. pVds = FLists.Find(CTLR_MNGM_NMBR);
  563. if (!pVds) continue;
  564. String DTCT_NMBR = pADO->FieldByName("DTCT_NMBR")->AsString;
  565. pVdsDtct = pVds->FSubLists.Find(DTCT_NMBR);
  566. if (!pVdsDtct) continue;
  567. TItsVdsDtctCndt *pObj = new TItsVdsDtctCndt();
  568. pObj->CTLR_MNGM_NMBR = CTLR_MNGM_NMBR;
  569. pObj->DTCT_NMBR = DTCT_NMBR;
  570. pObj->SYST_KIND_DVSN = pADO->FieldByName("SYST_KIND_DVSN")->AsString;
  571. pObj->MAX_TFVL = pADO->FieldByName("MAX_TFVL")->AsString;
  572. pObj->MIN_TFVL = pADO->FieldByName("MIN_TFVL")->AsString;
  573. pObj->MAX_OCPY_RATE = pADO->FieldByName("MAX_OCPY_RATE")->AsString;
  574. pObj->MIN_OCPY_RATE = pADO->FieldByName("MIN_OCPY_RATE")->AsString;
  575. pObj->MAX_SPED = pADO->FieldByName("MAX_SPED")->AsString;
  576. pObj->MIN_SPED = pADO->FieldByName("MIN_SPED")->AsString;
  577. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  578. pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString;
  579. pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString;
  580. pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString;
  581. pObj->LAST_CRCT_DT = pADO->FieldByName("LAST_CRCT_DT")->AsString;
  582. pVdsDtct->FCndtLists.Push(pObj->SYST_KIND_DVSN, pObj);
  583. pObj->Completed = true;
  584. pObj->MEM_DEL = "N";
  585. }
  586. }
  587. catch(EDatabaseError &E)
  588. {
  589. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  590. DBERRORMSG("TItsVdsManager::LoadFromDtctCndtDb", String(E.ClassName()), E.Message, sQry);
  591. throw Exception(String(E.ClassName()) + E.Message);
  592. }
  593. catch(Exception &exception)
  594. {
  595. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  596. DBERRORMSG("TItsVdsManager::LoadFromDtctCndtDb", String(exception.ClassName()), exception.Message, sQry);
  597. throw Exception(String(exception.ClassName()) + exception.Message);
  598. }
  599. }
  600. __finally
  601. {
  602. if (pADO)
  603. {
  604. pADO->Close();
  605. delete pADO;
  606. }
  607. FLists.UnLock();
  608. }
  609. return true;
  610. }
  611. //---------------------------------------------------------------------------
  612. bool TItsVdsManager::GetNextVdsId(String &ANewId, TADOConnection *ADbConn/*=NULL*/)
  613. {
  614. String sQry;
  615. TADOQuery *pADO = NULL;
  616. sQry = "SELECT TO_NUMBER(CASE WHEN EXISTS (SELECT 1 FROM TB_VDS_CTLR) \r\n"
  617. " THEN (SELECT TRIM(MAX(TO_NUMBER(CTLR_MNGM_NMBR)) + 1) \r\n"
  618. " FROM TB_VDS_CTLR) \r\n"
  619. " ELSE '1' END) NEWID \r\n"
  620. " FROM DUAL \r\n";
  621. ANewId = "";
  622. try
  623. {
  624. try
  625. {
  626. pADO = new TADOQuery(NULL);
  627. pADO->Close();
  628. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  629. pADO->SQL->Clear();
  630. pADO->SQL->Text = sQry;
  631. pADO->Open();
  632. ANewId = pADO->FieldByName("NEWID")->AsString;
  633. return true;
  634. }
  635. catch(EDatabaseError &E)
  636. {
  637. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  638. DBERRORMSG("TItsVdsManager::GetNextVdsId", String(E.ClassName()), E.Message, sQry);
  639. throw Exception(String(E.ClassName()) + E.Message);
  640. }
  641. catch(Exception &e)
  642. {
  643. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  644. DBERRORMSG("TItsVdsManager::GetNextVdsId", String(e.ClassName()), e.Message, sQry);
  645. throw Exception(String(e.ClassName()) + e.Message);
  646. }
  647. }
  648. __finally
  649. {
  650. if (pADO)
  651. {
  652. pADO->Close();
  653. delete pADO;
  654. }
  655. }
  656. return false;
  657. }
  658. //---------------------------------------------------------------------------
  659. bool TItsVdsManager::GetNextVdsDtctId(String &ANewId, TADOConnection *ADbConn/*=NULL*/)
  660. {
  661. String sQry;
  662. TADOQuery *pADO = NULL;
  663. sQry = "SELECT TO_NUMBER(CASE WHEN EXISTS (SELECT 1 FROM TB_VDS_DTCT_MSTR) \r\n"
  664. " THEN (SELECT TRIM(MAX(TO_NUMBER(DTCT_NMBR)) + 1) \r\n"
  665. " FROM TB_VDS_DTCT_MSTR) \r\n"
  666. " ELSE '1' END) NEWID \r\n"
  667. " FROM DUAL \r\n";
  668. ANewId = "";
  669. try
  670. {
  671. try
  672. {
  673. pADO = new TADOQuery(NULL);
  674. pADO->Close();
  675. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  676. pADO->SQL->Clear();
  677. pADO->SQL->Text = sQry;
  678. pADO->Open();
  679. ANewId = pADO->FieldByName("NEWID")->AsString;
  680. return true;
  681. }
  682. catch(EDatabaseError &E)
  683. {
  684. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  685. DBERRORMSG("TItsVdsManager::GetNextVdsDtctId", String(E.ClassName()), E.Message, sQry);
  686. throw Exception(String(E.ClassName()) + E.Message);
  687. }
  688. catch(Exception &exception)
  689. {
  690. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  691. DBERRORMSG("TItsVdsManager::GetNextVdsDtctId", String(exception.ClassName()), exception.Message, sQry);
  692. throw Exception(String(exception.ClassName()) + exception.Message);
  693. }
  694. }
  695. __finally
  696. {
  697. if (pADO)
  698. {
  699. pADO->Close();
  700. delete pADO;
  701. }
  702. }
  703. return false;
  704. }
  705. //---------------------------------------------------------------------------
  706. bool TItsVdsManager::DeleteVds(TItsVds *AObj, TADOConnection *ADbConn/*=NULL*/)
  707. {
  708. String sQry;
  709. TADOQuery *pADO = NULL;
  710. sQry = "UPDATE TB_VDS_CTLR \r\n"
  711. " SET DEL_YN = 'Y' \r\n"
  712. " WHERE CTLR_MNGM_NMBR = :p01 \r\n";
  713. try
  714. {
  715. FLists.Lock();
  716. try
  717. {
  718. pADO = new TADOQuery(NULL);
  719. pADO->Close();
  720. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  721. pADO->SQL->Clear();
  722. pADO->SQL->Text = sQry;
  723. pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_MNGM_NMBR;
  724. pADO->ExecSQL();
  725. sQry = "DELETE TB_FCLT_INFR \r\n"
  726. " WHERE FCLT_ID = :p01 \r\n";
  727. //" AND FCLT_TYPE = 'VDS' \r\n";
  728. pADO->SQL->Clear();
  729. pADO->SQL->Text = sQry;
  730. pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_MNGM_NMBR;
  731. pADO->ExecSQL();
  732. return true;
  733. }
  734. catch(EDatabaseError &E)
  735. {
  736. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  737. DBERRORMSG("TItsVdsManager::DeleteVds", String(E.ClassName()), E.Message, sQry);
  738. throw Exception(String(E.ClassName()) + E.Message);
  739. }
  740. catch(Exception &exception)
  741. {
  742. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  743. DBERRORMSG("TItsVdsManager::DeleteVds", String(exception.ClassName()), exception.Message, sQry);
  744. throw Exception(String(exception.ClassName()) + exception.Message);
  745. }
  746. }
  747. __finally
  748. {
  749. if (pADO)
  750. {
  751. pADO->Close();
  752. delete pADO;
  753. }
  754. FLists.UnLock();
  755. }
  756. return true;
  757. }
  758. //---------------------------------------------------------------------------
  759. bool TItsVdsManager::DeleteVdsDtctSubTable(TItsVdsDtct *AObj, TADOConnection *ADbConn/*=NULL*/)
  760. {
  761. String sQry;
  762. TADOQuery *pADO = NULL;
  763. try
  764. {
  765. try
  766. {
  767. pADO = new TADOQuery(NULL);
  768. pADO->Close();
  769. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  770. sQry = "DELETE TB_VDS_DTCT_LINK_RLTN \r\n"
  771. " WHERE DTCT_NMBR = :p01 \r\n";
  772. pADO->SQL->Clear();
  773. pADO->SQL->Text = sQry;
  774. pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR;
  775. pADO->ExecSQL();
  776. sQry = "DELETE TB_VDS_DTCT_RLBL_CNDT \r\n"
  777. " WHERE DTCT_NMBR = :p01 \r\n";
  778. pADO->SQL->Clear();
  779. pADO->SQL->Text = sQry;
  780. pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR;
  781. pADO->ExecSQL();
  782. sQry = "DELETE TB_VDS_DTCT_SMTH_PARA \r\n"
  783. " WHERE DTCT_NMBR = :p01 \r\n";
  784. pADO->SQL->Clear();
  785. pADO->SQL->Text = sQry;
  786. pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR;
  787. pADO->ExecSQL();
  788. return true;
  789. }
  790. catch(EDatabaseError &E)
  791. {
  792. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  793. DBERRORMSG("TItsVdsManager::DeleteVdsDtctSubTable", String(E.ClassName()), E.Message, sQry);
  794. throw Exception(String(E.ClassName()) + E.Message);
  795. }
  796. catch(Exception &exception)
  797. {
  798. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  799. DBERRORMSG("TItsVdsManager::DeleteVdsDtctSubTable", String(exception.ClassName()), exception.Message, sQry);
  800. throw Exception(String(exception.ClassName()) + exception.Message);
  801. }
  802. }
  803. __finally
  804. {
  805. if (pADO)
  806. {
  807. pADO->Close();
  808. delete pADO;
  809. }
  810. }
  811. return true;
  812. }
  813. //---------------------------------------------------------------------------
  814. bool TItsVdsManager::DeleteVdsDtct(TItsVdsDtct *AObj, TADOConnection *ADbConn/*=NULL*/)
  815. {
  816. String sQry;
  817. TADOQuery *pADO = NULL;
  818. sQry = "UPDATE TB_VDS_DTCT_MSTR \r\n"
  819. " SET DEL_YN = 'Y' \r\n"
  820. " WHERE DTCT_NMBR = :p01 \r\n";
  821. try
  822. {
  823. DeleteVdsDtctSubTable(AObj, ADbConn);
  824. try
  825. {
  826. pADO = new TADOQuery(NULL);
  827. pADO->Close();
  828. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  829. pADO->SQL->Clear();
  830. pADO->SQL->Text = sQry;
  831. pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR;
  832. pADO->ExecSQL();
  833. return true;
  834. }
  835. catch(EDatabaseError &E)
  836. {
  837. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  838. DBERRORMSG("TItsVdsManager::DeleteVdsDtct", String(E.ClassName()), E.Message, sQry);
  839. throw Exception(String(E.ClassName()) + E.Message);
  840. }
  841. catch(Exception &exception)
  842. {
  843. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  844. DBERRORMSG("TItsVdsManager::DeleteVdsDtct", String(exception.ClassName()), exception.Message, sQry);
  845. throw Exception(String(exception.ClassName()) + exception.Message);
  846. }
  847. }
  848. __finally
  849. {
  850. if (pADO)
  851. {
  852. pADO->Close();
  853. delete pADO;
  854. }
  855. }
  856. return true;
  857. }
  858. //---------------------------------------------------------------------------
  859. bool TItsVdsManager::SaveVdsDtct(TItsVdsDtct *AObj, TADOConnection *ADbConn/*=NULL*/)
  860. {
  861. String sQry;
  862. TADOQuery *pADO = NULL;
  863. sQry = "MERGE INTO TB_VDS_DTCT_MSTR L \r\n"
  864. "USING (SELECT :p01 AS DTCT_NMBR, \r\n"
  865. " :p02 AS DTCT_TYPE_CD, \r\n"
  866. " :p03 AS STLN_DSTC, \r\n"
  867. " :p04 AS ISTL_LANE, \r\n"
  868. " :p05 AS DET_NMBR, \r\n"
  869. " :p06 AS SNST, \r\n"
  870. " :p07 AS DTCT_VALD_DSTC, \r\n"
  871. " :p08 AS MDVH_UPLM_LNGT, \r\n"
  872. " :p09 AS MDVH_LWLM_LNGT, \r\n"
  873. " :p10 AS USE_YN, \r\n"
  874. " :p11 AS CHNL_NMBR, \r\n"
  875. " :p12 AS DEL_YN \r\n"
  876. " FROM DUAL) M \r\n"
  877. " ON (L.DTCT_NMBR = M.DTCT_NMBR) \r\n"
  878. "WHEN MATCHED THEN \r\n"
  879. "UPDATE SET DTCT_TYPE_CD = M.DTCT_TYPE_CD, \r\n"
  880. " STLN_DSTC = M.STLN_DSTC, \r\n"
  881. " ISTL_LANE = M.ISTL_LANE, \r\n"
  882. " DET_NMBR = M.DET_NMBR, \r\n"
  883. " SNST = M.SNST, \r\n"
  884. " DTCT_VALD_DSTC = M.DTCT_VALD_DSTC, \r\n"
  885. " MDVH_UPLM_LNGT = M.MDVH_UPLM_LNGT, \r\n"
  886. " MDVH_LWLM_LNGT = M.MDVH_LWLM_LNGT, \r\n"
  887. " USE_YN = M.USE_YN, \r\n"
  888. " CHNL_NMBR = M.CHNL_NMBR, \r\n"
  889. " DEL_YN = M.DEL_YN \r\n"
  890. "WHEN NOT MATCHED THEN \r\n"
  891. "INSERT (DTCT_NMBR, DTCT_TYPE_CD, STLN_DSTC, \r\n"
  892. " ISTL_LANE, DET_NMBR, SNST, \r\n"
  893. " DTCT_VALD_DSTC, MDVH_UPLM_LNGT, \r\n"
  894. " MDVH_LWLM_LNGT, USE_YN, \r\n"
  895. " CHNL_NMBR, DEL_YN) \r\n"
  896. "VALUES (M.DTCT_NMBR, M.DTCT_TYPE_CD, M.STLN_DSTC, \r\n"
  897. " M.ISTL_LANE, M.DET_NMBR, M.SNST, \r\n"
  898. " M.DTCT_VALD_DSTC, M.MDVH_UPLM_LNGT, \r\n"
  899. " M.MDVH_LWLM_LNGT, M.USE_YN, \r\n"
  900. " M.CHNL_NMBR, M.DEL_YN) \r\n";
  901. try
  902. {
  903. //관련정보를 모두 삭제
  904. DeleteVdsDtctSubTable(AObj, ADbConn);
  905. try
  906. {
  907. pADO = new TADOQuery(NULL);
  908. pADO->Close();
  909. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  910. pADO->SQL->Clear();
  911. pADO->SQL->Text = sQry;
  912. pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR;
  913. pADO->Parameters->ParamByName("p02")->Value = AObj->DTCT_TYPE_CD;
  914. pADO->Parameters->ParamByName("p03")->Value = AObj->STLN_DSTC;
  915. pADO->Parameters->ParamByName("p04")->Value = AObj->ISTL_LANE;
  916. pADO->Parameters->ParamByName("p05")->Value = AObj->DET_NMBR;
  917. pADO->Parameters->ParamByName("p06")->Value = AObj->SNST;
  918. pADO->Parameters->ParamByName("p07")->Value = AObj->DTCT_VALD_DSTC;
  919. pADO->Parameters->ParamByName("p08")->Value = AObj->MDVH_UPLM_LNGT;
  920. pADO->Parameters->ParamByName("p09")->Value = AObj->MDVH_LWLM_LNGT;
  921. pADO->Parameters->ParamByName("p10")->Value = AObj->USE_YN;
  922. pADO->Parameters->ParamByName("p11")->Value = AObj->CHNL_NMBR;
  923. pADO->Parameters->ParamByName("p12")->Value = AObj->DEL_YN;
  924. pADO->ExecSQL();
  925. //링크구성정보 입력
  926. sQry = "INSERT INTO TB_VDS_DTCT_LINK_RLTN (DTCT_NMBR, LINK_ID) \r\n"
  927. " VALUES (:p01, :p02 ) \r\n";
  928. pADO->SQL->Clear();
  929. pADO->SQL->Text = sQry;
  930. FOR_STL(TItsVdsDtctLink *, pObj, AObj->FLinkLists)
  931. {
  932. pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR;
  933. pADO->Parameters->ParamByName("p02")->Value = pObj->LINK_ID;
  934. pADO->ExecSQL();
  935. }
  936. //평활화파라미터정보 입력
  937. sQry = "INSERT INTO TB_VDS_DTCT_SMTH_PARA (DTCT_NMBR, \r\n"
  938. " SYST_KIND_DVSN, \r\n"
  939. " TFVL_FCTR, \r\n"
  940. " OCPY_RATE_FCTR, \r\n"
  941. " SPED_FCTR, \r\n"
  942. " HDWY_FCTR, \r\n"
  943. " DEL_YN ) \r\n"
  944. " VALUES (:p01, :p02, :p03, :p04, :p05, :p06, :p07 ) \r\n";
  945. pADO->SQL->Clear();
  946. pADO->SQL->Text = sQry;
  947. FOR_STL(TItsVdsDtctParam *, pObj, AObj->FParamLists)
  948. {
  949. pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR;
  950. pADO->Parameters->ParamByName("p02")->Value = pObj->SYST_KIND_DVSN;
  951. pADO->Parameters->ParamByName("p03")->Value = pObj->TFVL_FCTR;
  952. pADO->Parameters->ParamByName("p04")->Value = pObj->OCPY_RATE_FCTR;
  953. pADO->Parameters->ParamByName("p05")->Value = pObj->SPED_FCTR;
  954. pADO->Parameters->ParamByName("p06")->Value = pObj->HDWY_FCTR;
  955. pADO->Parameters->ParamByName("p07")->Value = pObj->DEL_YN;
  956. pADO->ExecSQL();
  957. }
  958. //신뢰도조건정보 입력
  959. sQry = "INSERT INTO TB_VDS_DTCT_RLBL_CNDT (DTCT_NMBR, \r\n"
  960. " SYST_KIND_DVSN, \r\n"
  961. " MAX_TFVL, \r\n"
  962. " MIN_TFVL, \r\n"
  963. " MAX_OCPY_RATE, \r\n"
  964. " MIN_OCPY_RATE, \r\n"
  965. " MAX_SPED, \r\n"
  966. " MIN_SPED, \r\n"
  967. " DEL_YN ) \r\n"
  968. " VALUES (:p01,:p02,:p03,:p04,:p05,:p06,:p07,:p08,:p09 ) \r\n";
  969. pADO->SQL->Clear();
  970. pADO->SQL->Text = sQry;
  971. FOR_STL(TItsVdsDtctCndt *, pObj, AObj->FCndtLists)
  972. {
  973. pADO->Parameters->ParamByName("p01")->Value = AObj->DTCT_NMBR;
  974. pADO->Parameters->ParamByName("p02")->Value = pObj->SYST_KIND_DVSN;
  975. pADO->Parameters->ParamByName("p03")->Value = pObj->MAX_TFVL;
  976. pADO->Parameters->ParamByName("p04")->Value = pObj->MIN_TFVL;
  977. pADO->Parameters->ParamByName("p05")->Value = pObj->MAX_OCPY_RATE;
  978. pADO->Parameters->ParamByName("p06")->Value = pObj->MIN_OCPY_RATE;
  979. pADO->Parameters->ParamByName("p07")->Value = pObj->MAX_SPED;
  980. pADO->Parameters->ParamByName("p08")->Value = pObj->MIN_SPED;
  981. pADO->Parameters->ParamByName("p09")->Value = pObj->DEL_YN;
  982. pADO->ExecSQL();
  983. }
  984. return true;
  985. }
  986. catch(EDatabaseError &E)
  987. {
  988. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  989. DBERRORMSG("TItsVdsManager::SaveVdsDtct", String(E.ClassName()), E.Message, sQry);
  990. throw Exception(String(E.ClassName()) + E.Message);
  991. }
  992. catch(Exception &exception)
  993. {
  994. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  995. DBERRORMSG("TItsVdsManager::SaveVdsDtct", String(exception.ClassName()), exception.Message, sQry);
  996. throw Exception(String(exception.ClassName()) + exception.Message);
  997. }
  998. }
  999. __finally
  1000. {
  1001. if (pADO)
  1002. {
  1003. pADO->Close();
  1004. delete pADO;
  1005. }
  1006. }
  1007. return true;
  1008. }
  1009. //---------------------------------------------------------------------------
  1010. bool TItsVdsManager::UpdateVds(TItsVds *AObj, TADOConnection *ADbConn/*=NULL*/)
  1011. {
  1012. String sQry;
  1013. TADOQuery *pADO = NULL;
  1014. sQry = "UPDATE TB_VDS_CTLR \r\n"
  1015. " SET CTLR_TYPE_CD = :p02, \r\n"
  1016. " VALD_YN = :p03, \r\n"
  1017. " X_CRDN = :p04, \r\n"
  1018. " Y_CRDN = :p05, \r\n"
  1019. " LCTN = :p06, \r\n"
  1020. " TRMN_IP = :p07, \r\n"
  1021. " TRMN_PORT = :p08, \r\n"
  1022. " CTLR_CLCT_CYCL = :p09, \r\n"
  1023. " CTLR_STTS_CYCL = :p10, \r\n"
  1024. " LOOP_BORD_NUM = :p11, \r\n"
  1025. " DEL_YN = :p12, \r\n"
  1026. " VDS_CTLR_ID = :p13 \r\n"
  1027. " WHERE CTLR_MNGM_NMBR = :p01 \r\n";
  1028. try
  1029. {
  1030. FLists.Lock();
  1031. try
  1032. {
  1033. pADO = new TADOQuery(NULL);
  1034. pADO->Close();
  1035. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1036. pADO->SQL->Clear();
  1037. pADO->SQL->Text = sQry;
  1038. pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_MNGM_NMBR;
  1039. pADO->Parameters->ParamByName("p02")->Value = AObj->CTLR_TYPE_CD;
  1040. pADO->Parameters->ParamByName("p03")->Value = AObj->VALD_YN;
  1041. pADO->Parameters->ParamByName("p04")->Value = AObj->X_CRDN;
  1042. pADO->Parameters->ParamByName("p05")->Value = AObj->Y_CRDN;
  1043. pADO->Parameters->ParamByName("p06")->Value = AObj->LCTN;
  1044. pADO->Parameters->ParamByName("p07")->Value = AObj->TRMN_IP;
  1045. pADO->Parameters->ParamByName("p08")->Value = AObj->TRMN_PORT;
  1046. pADO->Parameters->ParamByName("p09")->Value = AObj->CTLR_CLCT_CYCL;
  1047. pADO->Parameters->ParamByName("p10")->Value = AObj->CTLR_STTS_CYCL;
  1048. pADO->Parameters->ParamByName("p11")->Value = AObj->LOOP_BORD_NUM;
  1049. pADO->Parameters->ParamByName("p12")->Value = AObj->DEL_YN;
  1050. pADO->Parameters->ParamByName("p13")->Value = AObj->VDS_CTLR_ID;
  1051. pADO->ExecSQL();
  1052. sQry = "UPDATE TB_FCLT_INFR \r\n"
  1053. " SET FCLT_LCTN = :p02 \r\n"
  1054. " WHERE FCLT_ID = :p01 \r\n";
  1055. //" AND FCLT_TYPE = 'VDS' \r\n";
  1056. pADO->SQL->Clear();
  1057. pADO->SQL->Text = sQry;
  1058. pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_MNGM_NMBR;
  1059. pADO->Parameters->ParamByName("p02")->Value = AObj->LCTN;
  1060. pADO->ExecSQL();
  1061. return true;
  1062. }
  1063. catch(EDatabaseError &E)
  1064. {
  1065. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1066. DBERRORMSG("TItsVdsManager::UpdateVds", String(E.ClassName()), E.Message, sQry);
  1067. throw Exception(String(E.ClassName()) + E.Message);
  1068. }
  1069. catch(Exception &exception)
  1070. {
  1071. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1072. DBERRORMSG("TItsVdsManager::UpdateVds", String(exception.ClassName()), exception.Message, sQry);
  1073. throw Exception(String(exception.ClassName()) + exception.Message);
  1074. }
  1075. }
  1076. __finally
  1077. {
  1078. if (pADO)
  1079. {
  1080. pADO->Close();
  1081. delete pADO;
  1082. }
  1083. FLists.UnLock();
  1084. }
  1085. return true;
  1086. }
  1087. //---------------------------------------------------------------------------
  1088. bool TItsVdsManager::InsertVds(TItsVds *AObj, TADOConnection *ADbConn/*=NULL*/)
  1089. {
  1090. String sQry;
  1091. TADOQuery *pADO = NULL;
  1092. sQry = "INSERT INTO TB_VDS_CTLR(CTLR_MNGM_NMBR, CTLR_TYPE_CD, VALD_YN, X_CRDN, Y_CRDN, \r\n"
  1093. " LCTN, TRMN_IP, TRMN_PORT, CTLR_CLCT_CYCL, CTLR_STTS_CYCL, \r\n"
  1094. " LOOP_BORD_NUM, DEL_YN, VDS_CTLR_ID) \r\n"
  1095. " VALUES(:p01, :p02, :p03, :p04, :p05, \r\n"
  1096. " :p06, :p07, :p08, :p09, :p10, \r\n"
  1097. " :p11, :p12, :p13) \r\n";
  1098. try
  1099. {
  1100. FLists.Lock();
  1101. try
  1102. {
  1103. pADO = new TADOQuery(NULL);
  1104. pADO->Close();
  1105. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1106. pADO->SQL->Clear();
  1107. pADO->SQL->Text = sQry;
  1108. pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_MNGM_NMBR;
  1109. pADO->Parameters->ParamByName("p02")->Value = AObj->CTLR_TYPE_CD;
  1110. pADO->Parameters->ParamByName("p03")->Value = AObj->VALD_YN;
  1111. pADO->Parameters->ParamByName("p04")->Value = AObj->X_CRDN;
  1112. pADO->Parameters->ParamByName("p05")->Value = AObj->Y_CRDN;
  1113. pADO->Parameters->ParamByName("p06")->Value = AObj->LCTN;
  1114. pADO->Parameters->ParamByName("p07")->Value = AObj->TRMN_IP;
  1115. pADO->Parameters->ParamByName("p08")->Value = AObj->TRMN_PORT;
  1116. pADO->Parameters->ParamByName("p09")->Value = AObj->CTLR_CLCT_CYCL;
  1117. pADO->Parameters->ParamByName("p10")->Value = AObj->CTLR_STTS_CYCL;
  1118. pADO->Parameters->ParamByName("p11")->Value = AObj->LOOP_BORD_NUM;
  1119. pADO->Parameters->ParamByName("p12")->Value = AObj->DEL_YN;
  1120. pADO->Parameters->ParamByName("p13")->Value = AObj->VDS_CTLR_ID;
  1121. pADO->ExecSQL();
  1122. sQry = "INSERT INTO TB_FCLT_INFR(FCLT_ID, FCLT_TYPE, FCLT_LCTN, RSCE_YN, DEL_YN, USE_YEAR, AMT) \r\n"
  1123. " VALUES(:p01, 'VDS', :p03, 'N', 'N', '0', '0') \r\n";
  1124. pADO->SQL->Clear();
  1125. pADO->SQL->Text = sQry;
  1126. pADO->Parameters->ParamByName("p01")->Value = AObj->CTLR_MNGM_NMBR;
  1127. pADO->Parameters->ParamByName("p03")->Value = AObj->LCTN;
  1128. pADO->ExecSQL();
  1129. return true;
  1130. }
  1131. catch(EDatabaseError &E)
  1132. {
  1133. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1134. DBERRORMSG("TItsVdsManager::InsertVds", String(E.ClassName()), E.Message, sQry);
  1135. throw Exception(String(E.ClassName()) + E.Message);
  1136. }
  1137. catch(Exception &exception)
  1138. {
  1139. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1140. DBERRORMSG("TItsVdsManager::InsertVds", String(exception.ClassName()), exception.Message, sQry);
  1141. throw Exception(String(exception.ClassName()) + exception.Message);
  1142. }
  1143. }
  1144. __finally
  1145. {
  1146. if (pADO)
  1147. {
  1148. pADO->Close();
  1149. delete pADO;
  1150. }
  1151. FLists.UnLock();
  1152. }
  1153. return true;
  1154. }
  1155. //---------------------------------------------------------------------------