CDSPrltCtlrF.cpp 34 KB

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