CDSPrltCtlrF.cpp 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSPrltCtlrF.h"
  4. #include "ITS_OPLibF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. TPrltCtlr::TPrltCtlr()
  8. {
  9. }
  10. //---------------------------------------------------------------------------
  11. TPrltCtlr::~TPrltCtlr()
  12. {
  13. }
  14. //---------------------------------------------------------------------------
  15. //---------------------------------------------------------------------------
  16. TPrltCtlrManager *PrltCtlrManager = NULL;
  17. //---------------------------------------------------------------------------
  18. /*
  19. * Prlt Manager
  20. */
  21. TPrltCtlrManager::TPrltCtlrManager()
  22. {
  23. }
  24. //---------------------------------------------------------------------------
  25. TPrltCtlrManager::~TPrltCtlrManager()
  26. {
  27. FLists.RemoveAll();
  28. }
  29. //---------------------------------------------------------------------------
  30. bool TPrltCtlrManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  31. {
  32. String sQry;
  33. TADOQuery *pADO = NULL;
  34. sQry = "SELECT * \r\n"
  35. " FROM TB_PRLT_CTLR \r\n"
  36. " WHERE DEL_YN = 'N' \r\n";
  37. FLists.Lock();
  38. try
  39. {
  40. FLists.RemoveAll();
  41. try
  42. {
  43. pADO = new TADOQuery(NULL);
  44. pADO->Close();
  45. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  46. pADO->SQL->Clear();
  47. pADO->SQL->Text = sQry;
  48. pADO->Prepared = true;
  49. pADO->Open();
  50. for( ; !pADO->Eof; pADO->Next())
  51. {
  52. TPrltCtlr *pObj = new TPrltCtlr();
  53. pObj->PRLT_CTLR_NMBR = pADO->FieldByName("PRLT_CTLR_NMBR")->AsString;
  54. pObj->PRLT_CTLR_ID = pADO->FieldByName("PRLT_CTLR_ID")->AsString;
  55. pObj->PRLT_NM = pADO->FieldByName("PRLT_NM")->AsString;
  56. pObj->PRLT_CTLR_IP = pADO->FieldByName("PRLT_CTLR_IP")->AsString;
  57. pObj->PRLT_CTLR_PORT = pADO->FieldByName("PRLT_CTLR_PORT")->AsInteger;
  58. pObj->PRLT_CTLR_LOCAL_NO = pADO->FieldByName("PRLT_CTLR_LOCAL_NO")->AsInteger;
  59. //pObj->PRLT_TYPE_CD = pADO->FieldByName("PRLT_TYPE_CD")->AsString;
  60. pObj->ISTL_LCTN_NM = pADO->FieldByName("ISTL_LCTN_NM")->AsString;
  61. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsFloat;
  62. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsFloat;
  63. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  64. pObj->PRLT_OPER_DVSN_CD = pADO->FieldByName("PRLT_OPER_DVSN_CD")->AsString;
  65. pObj->PRLT_TYPE_DVSN_CD = pADO->FieldByName("PRLT_TYPE_DVSN_CD")->AsString;
  66. pObj->PRLT_TEL = pADO->FieldByName("PRLT_TEL")->AsString;
  67. pObj->ISTL_LCTN_ADDR = pADO->FieldByName("ISTL_LCTN_ADDR")->AsString;
  68. pObj->WHOL_NPLS = pADO->FieldByName("WHOL_NPLS")->AsInteger;
  69. pObj->GNRL_NPLS = pADO->FieldByName("GNRL_NPLS")->AsInteger;
  70. pObj->LGVH_NPLS = pADO->FieldByName("LGVH_NPLS")->AsInteger;
  71. pObj->HVVH_NPLS = pADO->FieldByName("HVVH_NPLS")->AsInteger;
  72. pObj->EMVH_NPLS = pADO->FieldByName("EMVH_NPLS")->AsInteger;
  73. pObj->HNDC_NPLS = pADO->FieldByName("HNDC_NPLS")->AsInteger;
  74. pObj->WMON_NPLS = pADO->FieldByName("WMON_NPLS")->AsInteger;
  75. pObj->ELVH_NPLS = pADO->FieldByName("ELVH_NPLS")->AsInteger;
  76. pObj->ETC_NPLS = pADO->FieldByName("ETC_NPLS")->AsInteger;
  77. pObj->CNGT_NPLS = pADO->FieldByName("CNGT_NPLS")->AsInteger;
  78. pObj->PRLT_CHARGE_DESC = pADO->FieldByName("PRLT_CHARGE_DESC")->AsString;
  79. pObj->PRLT_OPER_DESC = pADO->FieldByName("PRLT_OPER_DESC")->AsString;
  80. pObj->PRLT_ETC_DESC = pADO->FieldByName("PRLT_ETC_DESC")->AsString;
  81. pObj->REAL_DATA_YN = pADO->FieldByName("REAL_DATA_YN")->AsString;
  82. pObj->CTLR_CLCT_CYCL = pADO->FieldByName("CTLR_CLCT_CYCL")->AsInteger;
  83. pObj->CTLR_STTS_CYCL = pADO->FieldByName("CTLR_STTS_CYCL")->AsInteger;
  84. pObj->CHNG_DT = pADO->FieldByName("CHNG_DT")->AsString;
  85. pObj->MEM_DEL = "N";
  86. FLists.Push(pObj->PRLT_CTLR_NMBR, pObj);
  87. pObj->Completed = true;
  88. pObj->MEM_DEL = "N";
  89. }
  90. }
  91. catch(EDatabaseError &E)
  92. {
  93. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  94. DBERRORMSG("TPrltCtlrManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
  95. throw Exception(String(E.ClassName()) + E.Message);
  96. }
  97. catch(Exception &exception)
  98. {
  99. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  100. DBERRORMSG("TPrltCtlrManager::LoadFromDb", String(exception.ClassName()), exception.Message, sQry);
  101. throw Exception(String(exception.ClassName()) + exception.Message);
  102. }
  103. }
  104. __finally
  105. {
  106. if (pADO)
  107. {
  108. pADO->Close();
  109. delete pADO;
  110. }
  111. FLists.UnLock();
  112. }
  113. return true;
  114. }
  115. //---------------------------------------------------------------------------
  116. bool TPrltCtlrManager::LoadStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  117. {
  118. String sQry;
  119. TADOQuery *pADO = NULL;
  120. sQry = "SELECT * \r\n"
  121. " FROM TB_PRLT_CTLR_STTS A, TB_PRLT_CTLR B \r\n"
  122. " WHERE B.REAL_DATA_YN = 'Y' \r\n"
  123. " AND A.PRLT_CTLR_NMBR = B.PRLT_CTLR_NMBR \r\n"
  124. " AND A.UPDT_DT >= TO_CHAR(SYSDATE-3/1440, 'YYYYMMDDHH24MISS') \r\n";
  125. FLists.Lock();
  126. try
  127. {
  128. TPrltCtlr *pObj = NULL;
  129. try
  130. {
  131. pADO = new TADOQuery(NULL);
  132. pADO->Close();
  133. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  134. pADO->SQL->Clear();
  135. pADO->SQL->Text = sQry;
  136. pADO->Prepared = true;
  137. pADO->Open();
  138. //int nRows = pADO->RecordCount;
  139. for( ; !pADO->Eof; pADO->Next())
  140. {
  141. String sPrltNmbr = pADO->FieldByName("PRLT_CTLR_NMBR")->AsString;
  142. pObj = FLists.Find(sPrltNmbr);
  143. if (!pObj) continue;
  144. String UPDT_DT = pADO->FieldByName("UPDT_DT")->AsString;
  145. String CONN_STTS_CD = pADO->FieldByName("CMNC_STTS_CD")->AsString;
  146. if (CONN_STTS_CD != "CMS0")
  147. {
  148. pObj->STATE.Comm = park_comm_error;
  149. //Åë½ÅÀå¾Ö
  150. continue;
  151. }
  152. pObj->STATE.Comm = park_comm_normal;
  153. }
  154. }
  155. catch(EDatabaseError &E)
  156. {
  157. DBERRORMSG("TPrltCtlrManager::LoadStatusFromDb", String(E.ClassName()), E.Message, sQry);
  158. throw Exception(String(E.ClassName()) + E.Message);
  159. }
  160. catch(Exception &e)
  161. {
  162. DBERRORMSG("TPrltCtlrManager::LoadStatusFromDb", String(e.ClassName()), e.Message, sQry);
  163. throw Exception(String(e.ClassName()) + e.Message);
  164. }
  165. }
  166. __finally
  167. {
  168. if (pADO)
  169. {
  170. pADO->Close();
  171. delete pADO;
  172. }
  173. FLists.UnLock();
  174. }
  175. return true;
  176. }
  177. //---------------------------------------------------------------------------
  178. bool TPrltCtlrManager::GetNextPrltId(int &ANmbr, int &AId, TADOConnection *ADbConn/*=NULL*/)
  179. {
  180. String sQry;
  181. TADOQuery *pADO = NULL;
  182. sQry = "SELECT NVL(MAX(PRLT_CTLR_NMBR), 10000) + 1 AS NEWID FROM TB_PRLT_CTLR \r\n";
  183. try
  184. {
  185. try
  186. {
  187. pADO = new TADOQuery(NULL);
  188. pADO->Close();
  189. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  190. pADO->SQL->Clear();
  191. pADO->SQL->Text = sQry;
  192. pADO->Prepared = true;
  193. pADO->Open();
  194. ANmbr = pADO->FieldByName("NEWID")->AsInteger;
  195. AId = ANmbr / 10000;
  196. return true;
  197. }
  198. catch(EDatabaseError &E)
  199. {
  200. DBERRORLOG("TPrltCtlrManager::GetNextPrltId", String(E.ClassName()), E.Message, sQry);
  201. throw Exception(String(E.ClassName()) + E.Message);
  202. }
  203. catch(Exception &e)
  204. {
  205. DBERRORLOG("TPrltCtlrManager::GetNextPrltId", String(e.ClassName()), e.Message, sQry);
  206. throw Exception(String(e.ClassName()) + e.Message);
  207. }
  208. }
  209. __finally
  210. {
  211. if (pADO)
  212. {
  213. pADO->Close();
  214. delete pADO;
  215. }
  216. }
  217. return false;
  218. }
  219. //---------------------------------------------------------------------------
  220. bool TPrltCtlrManager::DeletePrlt(TPrltCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  221. {
  222. String sQry;
  223. TADOQuery *pADO = NULL;
  224. sQry = "UPDATE TB_PRLT_CTLR \r\n"
  225. " SET DEL_YN = 'Y' \r\n"
  226. " WHERE PRLT_CTLR_NMBR = :p01 \r\n";
  227. try
  228. {
  229. FLists.Lock();
  230. try
  231. {
  232. pADO = new TADOQuery(NULL);
  233. pADO->Close();
  234. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  235. pADO->SQL->Clear();
  236. pADO->SQL->Text = sQry;
  237. pADO->Parameters->ParamByName("p01")->Value = AObj->PRLT_CTLR_NMBR;
  238. pADO->ExecSQL();
  239. sQry = "DELETE TB_FCLT_INFR \r\n"
  240. " WHERE FCLT_ID = :p01 \r\n";
  241. pADO->SQL->Clear();
  242. pADO->SQL->Text = sQry;
  243. pADO->Parameters->ParamByName("p01")->Value = AObj->PRLT_CTLR_ID;
  244. pADO->ExecSQL();
  245. return true;
  246. }
  247. catch(EDatabaseError &E)
  248. {
  249. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  250. DBERRORMSG("TPrltCtlrManager::DeletePrlt", String(E.ClassName()), E.Message, sQry);
  251. throw Exception(String(E.ClassName()) + E.Message);
  252. }
  253. catch(Exception &exception)
  254. {
  255. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  256. DBERRORMSG("TPrltCtlrManager::DeletePrlt", String(exception.ClassName()), exception.Message, sQry);
  257. throw Exception(String(exception.ClassName()) + exception.Message);
  258. }
  259. }
  260. __finally
  261. {
  262. if (pADO)
  263. {
  264. pADO->Close();
  265. delete pADO;
  266. }
  267. FLists.UnLock();
  268. }
  269. return true;
  270. }
  271. //---------------------------------------------------------------------------
  272. bool TPrltCtlrManager::UpdatePrlt(TPrltCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  273. {
  274. return MergePrlt(AObj, ADbConn);
  275. }
  276. //---------------------------------------------------------------------------
  277. bool TPrltCtlrManager::MergePrlt(TPrltCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  278. {
  279. String sQry;
  280. TADOQuery *pADO = NULL;
  281. sQry = "MERGE INTO TB_PRLT_CTLR L \r\n"
  282. "USING (SELECT :p01 AS PRLT_CTLR_NMBR, \r\n"
  283. " :p02 AS PRLT_CTLR_ID, \r\n"
  284. " :p03 AS PRLT_NM, \r\n"
  285. " :p04 AS PRLT_CTLR_IP, \r\n"
  286. " :p05 AS PRLT_CTLR_PORT, \r\n"
  287. " :p06 AS PRLT_CTLR_LOCAL_NO, \r\n"
  288. " :p07 AS PRLT_OPER_DVSN_CD, \r\n"
  289. " :p08 AS PRLT_TYPE_DVSN_CD, \r\n"
  290. " :p09 AS PRLT_TEL, \r\n"
  291. " :p10 AS ISTL_LCTN_NM, \r\n"
  292. " :p11 AS X_CRDN, \r\n"
  293. " :p12 AS Y_CRDN, \r\n"
  294. " :p13 AS DEL_YN, \r\n"
  295. " :p14 AS ISTL_LCTN_ADDR, \r\n"
  296. " :p15 AS WHOL_NPLS, \r\n"
  297. " :p16 AS GNRL_NPLS, \r\n"
  298. " :p17 AS LGVH_NPLS, \r\n"
  299. " :p18 AS HVVH_NPLS, \r\n"
  300. " :p19 AS EMVH_NPLS, \r\n"
  301. " :p20 AS HNDC_NPLS, \r\n"
  302. " :p21 AS WMON_NPLS, \r\n"
  303. " :p22 AS ELVH_NPLS, \r\n"
  304. " :p23 AS ETC_NPLS, \r\n"
  305. " :p24 AS PRLT_CHARGE_DESC, \r\n"
  306. " :p25 AS PRLT_OPER_DESC, \r\n"
  307. " :p26 AS PRLT_ETC_DESC, \r\n"
  308. " :p27 AS CTLR_CLCT_CYCL, \r\n"
  309. " :p28 AS CTLR_STTS_CYCL, \r\n"
  310. " :p29 AS REAL_DATA_YN, \r\n"
  311. " :p30 AS CHNG_DT, \r\n"
  312. " :p31 AS CNGT_NPLS \r\n"
  313. " FROM DUAL) M \r\n"
  314. " ON (L.PRLT_CTLR_NMBR = M.PRLT_CTLR_NMBR) \r\n"
  315. "WHEN MATCHED THEN \r\n"
  316. " UPDATE SET L.PRLT_CTLR_ID = M.PRLT_CTLR_ID, \r\n"
  317. " L.PRLT_NM = M.PRLT_NM, \r\n"
  318. " L.PRLT_CTLR_IP = M.PRLT_CTLR_IP, \r\n"
  319. " L.PRLT_CTLR_PORT = M.PRLT_CTLR_PORT, \r\n"
  320. " L.PRLT_CTLR_LOCAL_NO = M.PRLT_CTLR_LOCAL_NO, \r\n"
  321. " L.PRLT_OPER_DVSN_CD = M.PRLT_OPER_DVSN_CD, \r\n"
  322. " L.PRLT_TYPE_DVSN_CD = M.PRLT_TYPE_DVSN_CD, \r\n"
  323. " L.PRLT_TEL = M.PRLT_TEL, \r\n"
  324. " L.ISTL_LCTN_NM = M.ISTL_LCTN_NM, \r\n"
  325. " L.X_CRDN = M.X_CRDN, \r\n"
  326. " L.Y_CRDN = M.Y_CRDN, \r\n"
  327. " L.DEL_YN = M.DEL_YN, \r\n"
  328. " L.ISTL_LCTN_ADDR = M.ISTL_LCTN_ADDR, \r\n"
  329. " L.WHOL_NPLS = M.WHOL_NPLS, \r\n"
  330. " L.GNRL_NPLS = M.GNRL_NPLS, \r\n"
  331. " L.LGVH_NPLS = M.LGVH_NPLS, \r\n"
  332. " L.HVVH_NPLS = M.HVVH_NPLS, \r\n"
  333. " L.EMVH_NPLS = M.EMVH_NPLS, \r\n"
  334. " L.HNDC_NPLS = M.HNDC_NPLS, \r\n"
  335. " L.WMON_NPLS = M.WMON_NPLS, \r\n"
  336. " L.ELVH_NPLS = M.ELVH_NPLS, \r\n"
  337. " L.ETC_NPLS = M.ETC_NPLS, \r\n"
  338. " L.PRLT_CHARGE_DESC = M.PRLT_CHARGE_DESC, \r\n"
  339. " L.PRLT_OPER_DESC = M.PRLT_OPER_DESC, \r\n"
  340. " L.PRLT_ETC_DESC = M.PRLT_ETC_DESC, \r\n"
  341. " L.CTLR_CLCT_CYCL = M.CTLR_CLCT_CYCL, \r\n"
  342. " L.CTLR_STTS_CYCL = M.CTLR_STTS_CYCL, \r\n"
  343. " L.REAL_DATA_YN = M.REAL_DATA_YN, \r\n"
  344. " L.CHNG_DT = M.CHNG_DT, \r\n"
  345. " L.CNGT_NPLS = M.CNGT_NPLS \r\n"
  346. "WHEN NOT MATCHED THEN \r\n"
  347. " INSERT (PRLT_CTLR_NMBR, \r\n"
  348. " PRLT_CTLR_ID, \r\n"
  349. " PRLT_NM, \r\n"
  350. " PRLT_CTLR_IP, \r\n"
  351. " PRLT_CTLR_PORT, \r\n"
  352. " PRLT_CTLR_LOCAL_NO, \r\n"
  353. " PRLT_OPER_DVSN_CD, \r\n"
  354. " PRLT_TYPE_DVSN_CD, \r\n"
  355. " PRLT_TEL, \r\n"
  356. " ISTL_LCTN_NM, \r\n"
  357. " X_CRDN, \r\n"
  358. " Y_CRDN, \r\n"
  359. " DEL_YN, \r\n"
  360. " ISTL_LCTN_ADDR, \r\n"
  361. " WHOL_NPLS, \r\n"
  362. " GNRL_NPLS, \r\n"
  363. " LGVH_NPLS, \r\n"
  364. " HVVH_NPLS, \r\n"
  365. " EMVH_NPLS, \r\n"
  366. " HNDC_NPLS, \r\n"
  367. " WMON_NPLS, \r\n"
  368. " ELVH_NPLS, \r\n"
  369. " ETC_NPLS, \r\n"
  370. " PRLT_CHARGE_DESC, \r\n"
  371. " PRLT_OPER_DESC, \r\n"
  372. " PRLT_ETC_DESC, \r\n"
  373. " CTLR_CLCT_CYCL, \r\n"
  374. " CTLR_STTS_CYCL, \r\n"
  375. " REAL_DATA_YN, \r\n"
  376. " CNGT_NPLS, \r\n"
  377. " CHNG_DT ) \r\n"
  378. " VALUES (M.PRLT_CTLR_NMBR, \r\n"
  379. " M.PRLT_CTLR_ID, \r\n"
  380. " M.PRLT_NM, \r\n"
  381. " M.PRLT_CTLR_IP, \r\n"
  382. " M.PRLT_CTLR_PORT, \r\n"
  383. " M.PRLT_CTLR_LOCAL_NO, \r\n"
  384. " M.PRLT_OPER_DVSN_CD, \r\n"
  385. " M.PRLT_TYPE_DVSN_CD, \r\n"
  386. " M.PRLT_TEL, \r\n"
  387. " M.ISTL_LCTN_NM, \r\n"
  388. " M.X_CRDN, \r\n"
  389. " M.Y_CRDN, \r\n"
  390. " M.DEL_YN, \r\n"
  391. " M.ISTL_LCTN_ADDR, \r\n"
  392. " M.WHOL_NPLS, \r\n"
  393. " M.GNRL_NPLS, \r\n"
  394. " M.LGVH_NPLS, \r\n"
  395. " M.HVVH_NPLS, \r\n"
  396. " M.EMVH_NPLS, \r\n"
  397. " M.HNDC_NPLS, \r\n"
  398. " M.WMON_NPLS, \r\n"
  399. " M.ELVH_NPLS, \r\n"
  400. " M.ETC_NPLS, \r\n"
  401. " M.PRLT_CHARGE_DESC, \r\n"
  402. " M.PRLT_OPER_DESC, \r\n"
  403. " M.PRLT_ETC_DESC, \r\n"
  404. " M.CTLR_CLCT_CYCL, \r\n"
  405. " M.CTLR_STTS_CYCL, \r\n"
  406. " M.REAL_DATA_YN, \r\n"
  407. " M.CNGT_NPLS, \r\n"
  408. " M.CHNG_DT ) \r\n";
  409. try
  410. {
  411. try
  412. {
  413. pADO = new TADOQuery(NULL);
  414. pADO->Close();
  415. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  416. pADO->SQL->Clear();
  417. pADO->SQL->Text = sQry;
  418. AObj->CHNG_DT = Now().FormatString("yyyymmddhhnnss");
  419. pADO->Parameters->ParamByName("p01")->Value = AObj->PRLT_CTLR_NMBR;
  420. pADO->Parameters->ParamByName("p02")->Value = AObj->PRLT_CTLR_ID;
  421. pADO->Parameters->ParamByName("p03")->Value = AObj->PRLT_NM;
  422. pADO->Parameters->ParamByName("p04")->Value = AObj->PRLT_CTLR_IP;
  423. pADO->Parameters->ParamByName("p05")->Value = AObj->PRLT_CTLR_PORT;
  424. pADO->Parameters->ParamByName("p06")->Value = AObj->PRLT_CTLR_LOCAL_NO;
  425. pADO->Parameters->ParamByName("p07")->Value = AObj->PRLT_OPER_DVSN_CD;
  426. pADO->Parameters->ParamByName("p08")->Value = AObj->PRLT_TYPE_DVSN_CD;
  427. pADO->Parameters->ParamByName("p09")->Value = AObj->PRLT_TEL;
  428. pADO->Parameters->ParamByName("p10")->Value = AObj->ISTL_LCTN_NM;
  429. pADO->Parameters->ParamByName("p11")->Value = AObj->X_CRDN;
  430. pADO->Parameters->ParamByName("p12")->Value = AObj->Y_CRDN;
  431. pADO->Parameters->ParamByName("p13")->Value = AObj->DEL_YN;
  432. pADO->Parameters->ParamByName("p14")->Value = AObj->ISTL_LCTN_ADDR;
  433. pADO->Parameters->ParamByName("p15")->Value = AObj->WHOL_NPLS;
  434. pADO->Parameters->ParamByName("p16")->Value = AObj->GNRL_NPLS;
  435. pADO->Parameters->ParamByName("p17")->Value = AObj->LGVH_NPLS;
  436. pADO->Parameters->ParamByName("p18")->Value = AObj->HVVH_NPLS;
  437. pADO->Parameters->ParamByName("p19")->Value = AObj->EMVH_NPLS;
  438. pADO->Parameters->ParamByName("p20")->Value = AObj->HNDC_NPLS;
  439. pADO->Parameters->ParamByName("p21")->Value = AObj->WMON_NPLS;
  440. pADO->Parameters->ParamByName("p22")->Value = AObj->ELVH_NPLS;
  441. pADO->Parameters->ParamByName("p23")->Value = AObj->ETC_NPLS;
  442. pADO->Parameters->ParamByName("p24")->Value = AObj->PRLT_CHARGE_DESC;
  443. pADO->Parameters->ParamByName("p25")->Value = AObj->PRLT_OPER_DESC;
  444. pADO->Parameters->ParamByName("p26")->Value = AObj->PRLT_ETC_DESC;
  445. pADO->Parameters->ParamByName("p27")->Value = AObj->CTLR_CLCT_CYCL;
  446. pADO->Parameters->ParamByName("p28")->Value = AObj->CTLR_STTS_CYCL;
  447. pADO->Parameters->ParamByName("p29")->Value = AObj->REAL_DATA_YN;
  448. pADO->Parameters->ParamByName("p30")->Value = AObj->CHNG_DT;
  449. pADO->Parameters->ParamByName("p31")->Value = AObj->CNGT_NPLS;
  450. pADO->ExecSQL();
  451. MergeFcltInfo(AObj, ADbConn);
  452. }
  453. catch(EDatabaseError &E)
  454. {
  455. DBERRORMSG("TPrltCtlrManager::MergePrlt", String(E.ClassName()), E.Message, sQry);
  456. throw Exception(String(E.ClassName()) + E.Message);
  457. }
  458. catch(Exception &e)
  459. {
  460. DBERRORMSG("TPrltCtlrManager::MergePrlt", String(e.ClassName()), e.Message, sQry);
  461. throw Exception(String(e.ClassName()) + e.Message);
  462. }
  463. }
  464. __finally
  465. {
  466. if (pADO)
  467. {
  468. pADO->Close();
  469. delete pADO;
  470. }
  471. }
  472. return true;
  473. }
  474. //---------------------------------------------------------------------------
  475. bool TPrltCtlrManager::InsertPrlt(TPrltCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  476. {
  477. String sQry;
  478. TADOQuery *pADO = NULL;
  479. sQry = "INSERT INTO TB_PRLT_CTLR ( \r\n"
  480. " PRLT_CTLR_NMBR, \r\n"
  481. " PRLT_CTLR_ID, \r\n"
  482. " PRLT_NM, \r\n"
  483. " PRLT_CTLR_IP, \r\n"
  484. " PRLT_CTLR_PORT, \r\n"
  485. " PRLT_CTLR_LOCAL_NO, \r\n"
  486. " PRLT_OPER_DVSN_CD, \r\n"
  487. " PRLT_TYPE_DVSN_CD, \r\n"
  488. " PRLT_TEL, \r\n"
  489. " ISTL_LCTN_NM, \r\n"
  490. " X_CRDN, \r\n"
  491. " Y_CRDN, \r\n"
  492. " DEL_YN, \r\n"
  493. " ISTL_LCTN_ADDR, \r\n"
  494. " WHOL_NPLS, \r\n"
  495. " GNRL_NPLS, \r\n"
  496. " LGVH_NPLS, \r\n"
  497. " HVVH_NPLS, \r\n"
  498. " EMVH_NPLS, \r\n"
  499. " HNDC_NPLS, \r\n"
  500. " WMON_NPLS, \r\n"
  501. " ELVH_NPLS, \r\n"
  502. " ETC_NPLS, \r\n"
  503. " PRLT_CHARGE_DESC, \r\n"
  504. " PRLT_OPER_DESC, \r\n"
  505. " PRLT_ETC_DESC, \r\n"
  506. " CTLR_CLCT_CYCL, \r\n"
  507. " CTLR_STTS_CYCL, \r\n"
  508. " REAL_DATA_YN, \r\n"
  509. " CNGT_NPLS, \r\n"
  510. " CHNG_DT ) \r\n"
  511. " VALUES (:p01, \r\n"
  512. " :p02, \r\n"
  513. " :p03, \r\n"
  514. " :p04, \r\n"
  515. " :p05, \r\n"
  516. " :p06, \r\n"
  517. " :p07, \r\n"
  518. " :p08, \r\n"
  519. " :p09, \r\n"
  520. " :p10, \r\n"
  521. " :p11, \r\n"
  522. " :p12, \r\n"
  523. " :p13, \r\n"
  524. " :p14, \r\n"
  525. " :p15, \r\n"
  526. " :p16, \r\n"
  527. " :p17, \r\n"
  528. " :p18, \r\n"
  529. " :p19, \r\n"
  530. " :p20, \r\n"
  531. " :p21, \r\n"
  532. " :p22, \r\n"
  533. " :p23, \r\n"
  534. " :p24, \r\n"
  535. " :p25, \r\n"
  536. " :p26, \r\n"
  537. " :p27, \r\n"
  538. " :p28, \r\n"
  539. " :p29, \r\n";
  540. " :p30, \r\n";
  541. " :p31 ) \r\n";
  542. FLists.Lock();
  543. try
  544. {
  545. try
  546. {
  547. pADO = new TADOQuery(NULL);
  548. pADO->Close();
  549. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  550. pADO->SQL->Clear();
  551. pADO->SQL->Text = sQry;
  552. AObj->CHNG_DT = Now().FormatString("yyyymmddhhnnss");
  553. pADO->Parameters->ParamByName("p01")->Value = AObj->PRLT_CTLR_NMBR;
  554. pADO->Parameters->ParamByName("p02")->Value = AObj->PRLT_CTLR_ID;
  555. pADO->Parameters->ParamByName("p03")->Value = AObj->PRLT_NM;
  556. pADO->Parameters->ParamByName("p04")->Value = AObj->PRLT_CTLR_IP;
  557. pADO->Parameters->ParamByName("p05")->Value = AObj->PRLT_CTLR_PORT;
  558. pADO->Parameters->ParamByName("p06")->Value = AObj->PRLT_CTLR_LOCAL_NO;
  559. pADO->Parameters->ParamByName("p07")->Value = AObj->PRLT_OPER_DVSN_CD;
  560. pADO->Parameters->ParamByName("p08")->Value = AObj->PRLT_TYPE_DVSN_CD;
  561. pADO->Parameters->ParamByName("p09")->Value = AObj->PRLT_TEL;
  562. pADO->Parameters->ParamByName("p10")->Value = AObj->ISTL_LCTN_NM;
  563. pADO->Parameters->ParamByName("p11")->Value = AObj->X_CRDN;
  564. pADO->Parameters->ParamByName("p12")->Value = AObj->Y_CRDN;
  565. pADO->Parameters->ParamByName("p13")->Value = AObj->DEL_YN;
  566. pADO->Parameters->ParamByName("p14")->Value = AObj->ISTL_LCTN_ADDR;
  567. pADO->Parameters->ParamByName("p15")->Value = AObj->WHOL_NPLS;
  568. pADO->Parameters->ParamByName("p16")->Value = AObj->GNRL_NPLS;
  569. pADO->Parameters->ParamByName("p17")->Value = AObj->LGVH_NPLS;
  570. pADO->Parameters->ParamByName("p18")->Value = AObj->HVVH_NPLS;
  571. pADO->Parameters->ParamByName("p19")->Value = AObj->EMVH_NPLS;
  572. pADO->Parameters->ParamByName("p20")->Value = AObj->HNDC_NPLS;
  573. pADO->Parameters->ParamByName("p21")->Value = AObj->WMON_NPLS;
  574. pADO->Parameters->ParamByName("p22")->Value = AObj->ELVH_NPLS;
  575. pADO->Parameters->ParamByName("p23")->Value = AObj->ETC_NPLS;
  576. pADO->Parameters->ParamByName("p24")->Value = AObj->PRLT_CHARGE_DESC;
  577. pADO->Parameters->ParamByName("p25")->Value = AObj->PRLT_OPER_DESC;
  578. pADO->Parameters->ParamByName("p26")->Value = AObj->PRLT_ETC_DESC;
  579. pADO->Parameters->ParamByName("p27")->Value = AObj->CTLR_CLCT_CYCL;
  580. pADO->Parameters->ParamByName("p28")->Value = AObj->CTLR_STTS_CYCL;
  581. pADO->Parameters->ParamByName("p29")->Value = AObj->REAL_DATA_YN;
  582. pADO->Parameters->ParamByName("p30")->Value = AObj->CNGT_NPLS;
  583. pADO->Parameters->ParamByName("p31")->Value = AObj->CHNG_DT;
  584. pADO->ExecSQL();
  585. MergeFcltInfo(AObj, ADbConn);
  586. }
  587. catch(EDatabaseError &E)
  588. {
  589. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  590. DBERRORMSG("TPrltCtlrManager::InsertPrlt", 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("TPrltCtlrManager::InsertPrlt", 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 TPrltCtlrManager::MergeFcltInfo(TPrltCtlr *AObj, TADOConnection *ADbConn/*=NULL*/)
  613. {
  614. String sQry;
  615. TADOQuery *pADO = NULL;
  616. sQry = "MERGE INTO TB_FCLT_INFR L \r\n"
  617. "USING (SELECT :p01 AS FCLT_ID, \r\n"
  618. " :p02 AS FCLT_TYPE, \r\n"
  619. " :p03 AS FCLT_LCTN \r\n"
  620. " FROM DUAL) M \r\n"
  621. " ON (L.FCLT_ID = M.FCLT_ID AND L.FCLT_TYPE = M.FCLT_TYPE) \r\n"
  622. "WHEN MATCHED \r\n"
  623. "THEN \r\n"
  624. " UPDATE SET L.FCLT_LCTN = M.FCLT_LCTN, \r\n"
  625. " L.DEL_YN = 'N' \r\n"
  626. "WHEN NOT MATCHED \r\n"
  627. "THEN \r\n"
  628. " INSERT ( FCLT_ID, FCLT_TYPE, FCLT_LCTN) \r\n"
  629. " VALUES (M.FCLT_ID, M.FCLT_TYPE, M.FCLT_LCTN) \r\n";
  630. try
  631. {
  632. try
  633. {
  634. pADO = new TADOQuery(NULL);
  635. pADO->Close();
  636. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  637. pADO->SQL->Clear();
  638. pADO->SQL->Text = sQry;
  639. pADO->Parameters->ParamByName("p01")->Value = AObj->PRLT_CTLR_ID;
  640. pADO->Parameters->ParamByName("p02")->Value = "PARK";
  641. pADO->Parameters->ParamByName("p03")->Value = AObj->PRLT_NM;
  642. pADO->ExecSQL();
  643. return true;
  644. }
  645. catch(EDatabaseError &E)
  646. {
  647. DBERRORMSG("TPrltCtlrManager::MergeFcltInfo", String(E.ClassName()), E.Message, sQry);
  648. throw Exception(String(E.ClassName()) + E.Message);
  649. }
  650. catch(Exception &e)
  651. {
  652. DBERRORMSG("TPrltCtlrManager::MergeFcltInfo", String(e.ClassName()), e.Message, sQry);
  653. throw Exception(String(e.ClassName()) + e.Message);
  654. }
  655. }
  656. __finally
  657. {
  658. if (pADO)
  659. {
  660. pADO->Close();
  661. delete pADO;
  662. }
  663. }
  664. return true;
  665. }
  666. //---------------------------------------------------------------------------