CDSPrltCtlrF.cpp 33 KB

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