CDSObjectF.cpp 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSAtrdF.h"
  4. #include "ITSDbF.h"
  5. #include "AppGlobalF.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. TItsAtrdRoad::TItsAtrdRoad()
  9. {
  10. FCompleted = false;
  11. FEditMode = DB_INIT;
  12. FGridIndex = -1;
  13. MEM_DEL = "N";
  14. //Clear();
  15. }
  16. //---------------------------------------------------------------------------
  17. void TItsAtrdRoad::Clear()
  18. {
  19. ATRD_ID = "";
  20. ROAD_ID = "";
  21. ORD = "";
  22. MEM_DEL = "";
  23. }
  24. //---------------------------------------------------------------------------
  25. TItsAtrdRoad::~TItsAtrdRoad()
  26. {
  27. }
  28. //---------------------------------------------------------------------------
  29. TItsAtrd::TItsAtrd()
  30. {
  31. FCompleted = false;
  32. FEditMode = DB_INIT;
  33. FGridIndex = -1;
  34. MEM_DEL = "N";
  35. //Clear();
  36. }
  37. //---------------------------------------------------------------------------
  38. void TItsAtrd::Clear()
  39. {
  40. ATRD_ID = "";
  41. ATRD_NM = "";
  42. DRCT_CD = "";
  43. AREA_CD = "";
  44. DEL_YN = "";
  45. MEM_DEL = "";
  46. }
  47. //---------------------------------------------------------------------------
  48. TItsAtrd::~TItsAtrd()
  49. {
  50. }
  51. //---------------------------------------------------------------------------
  52. //---------------------------------------------------------------------------
  53. TItsAtrdManager *ItsAtrdManager = NULL;
  54. //---------------------------------------------------------------------------
  55. /*
  56. * Atrd Manager
  57. */
  58. TItsAtrdManager::TItsAtrdManager()
  59. {
  60. }
  61. //---------------------------------------------------------------------------
  62. TItsAtrdManager::~TItsAtrdManager()
  63. {
  64. FLists.RemoveAll();
  65. }
  66. //---------------------------------------------------------------------------
  67. bool TItsAtrdManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  68. {
  69. LoadFromAtrdDb(ADbConn);
  70. LoadFromAtrdRoadDb(ADbConn);
  71. return true;
  72. }
  73. bool TItsAtrdManager::LoadFromAtrdDb(TADOConnection *ADbConn/*=NULL*/)
  74. {
  75. String sQry;
  76. TADOQuery *pADO = NULL;
  77. sQry = "SELECT ATRD_ID, \r\n"
  78. " ATRD_NM, \r\n"
  79. " DRCT_CD, \r\n"
  80. " AREA_CD, \r\n"
  81. " DEL_YN \r\n"
  82. " FROM TB_ATRD \r\n";
  83. //" WHERE DEL_YN = 'N' \r\n";
  84. //" ORDER BY ATRD_ID \r\n";
  85. try
  86. {
  87. FLists.Lock();
  88. FLists.RemoveAll();
  89. try
  90. {
  91. pADO = new TADOQuery(NULL);
  92. pADO->Close();
  93. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  94. pADO->SQL->Clear();
  95. pADO->SQL->Text = sQry;
  96. pADO->Open();
  97. for( ; !pADO->Eof; pADO->Next())
  98. {
  99. TItsAtrd *pObj = new TItsAtrd();
  100. pObj->ATRD_ID = pADO->FieldByName("ATRD_ID")->AsString;
  101. pObj->ATRD_NM = pADO->FieldByName("ATRD_NM")->AsString;
  102. pObj->DRCT_CD = pADO->FieldByName("DRCT_CD")->AsString;
  103. pObj->AREA_CD = pADO->FieldByName("AREA_CD")->AsString;
  104. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  105. FLists.Push(pObj->ATRD_ID, pObj);
  106. pObj->Completed = true;
  107. pObj->MEM_DEL = "N";
  108. }
  109. }
  110. catch(EDatabaseError &E)
  111. {
  112. DBERRORMSG("간선도로정보조회", String(E.ClassName()), E.Message, sQry);
  113. throw Exception(String(E.ClassName()) + E.Message);
  114. }
  115. catch(Exception &exception)
  116. {
  117. DBERRORMSG("간선도로정보조회", String(exception.ClassName()), exception.Message, sQry);
  118. throw Exception(String(exception.ClassName()) + exception.Message);
  119. }
  120. }
  121. __finally
  122. {
  123. if (pADO)
  124. {
  125. pADO->Close();
  126. delete pADO;
  127. }
  128. FLists.UnLock();
  129. }
  130. return true;
  131. }
  132. //---------------------------------------------------------------------------
  133. bool TItsAtrdManager::LoadFromAtrdRoadDb(TADOConnection *ADbConn/*=NULL*/)
  134. {
  135. String sQry;
  136. TADOQuery *pADO = NULL;
  137. sQry = "SELECT ATRD_ID, \r\n"
  138. " ROAD_ID, \r\n"
  139. " ORD \r\n"
  140. " FROM TB_ATRD_ROAD_RLTN \r\n";
  141. " ORDER BY ATRD_ID, ORD \r\n";
  142. try
  143. {
  144. TItsAtrd *pAtrd;
  145. FLists.Lock();
  146. try
  147. {
  148. pADO = new TADOQuery(NULL);
  149. pADO->Close();
  150. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  151. pADO->SQL->Clear();
  152. pADO->SQL->Text = sQry;
  153. pADO->Open();
  154. for( ; !pADO->Eof; pADO->Next())
  155. {
  156. String ATRD_ID = pADO->FieldByName("ATRD_ID")->AsString;
  157. pAtrd = FLists.Find(ATRD_ID);
  158. if (!pAtrd) continue;
  159. TItsAtrdRoad *pObj = new TItsAtrdRoad();
  160. pObj->ATRD_ID = ATRD_ID;
  161. pObj->ROAD_ID = pADO->FieldByName("ROAD_ID")->AsString;
  162. pObj->ORD = pADO->FieldByName("ORD")->AsString;
  163. pAtrd->FSubLists.Push(pObj->ORD, pObj);
  164. pObj->Completed = true;
  165. pObj->MEM_DEL = "N";
  166. }
  167. }
  168. catch(EDatabaseError &E)
  169. {
  170. DBERRORMSG("간선도로-구간정보조회", String(E.ClassName()), E.Message, sQry);
  171. throw Exception(String(E.ClassName()) + E.Message);
  172. }
  173. catch(Exception &exception)
  174. {
  175. DBERRORMSG("간선도로-구간정보조회", String(exception.ClassName()), exception.Message, sQry);
  176. throw Exception(String(exception.ClassName()) + exception.Message);
  177. }
  178. }
  179. __finally
  180. {
  181. if (pADO)
  182. {
  183. pADO->Close();
  184. delete pADO;
  185. }
  186. FLists.UnLock();
  187. }
  188. return true;
  189. }
  190. //---------------------------------------------------------------------------
  191. bool TItsAtrdManager::DeleteAtrdRoad(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  192. {
  193. String sQry;
  194. TADOQuery *pADO = NULL;
  195. sQry = "DELETE TB_ATRD_ROAD_RLTN \r\n"
  196. " WHERE ATRD_ID = :p01 \r\n";
  197. try
  198. {
  199. try
  200. {
  201. pADO = new TADOQuery(NULL);
  202. pADO->Close();
  203. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  204. pADO->SQL->Clear();
  205. pADO->SQL->Text = sQry;
  206. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  207. pADO->ExecSQL();
  208. return true;
  209. }
  210. catch(EDatabaseError &E)
  211. {
  212. DBERRORMSG("간선도로-구간정보삭제", String(E.ClassName()), E.Message, sQry);
  213. throw Exception(String(E.ClassName()) + E.Message);
  214. }
  215. catch(Exception &exception)
  216. {
  217. DBERRORMSG("간선도로-구간정보삭제", String(exception.ClassName()), exception.Message, sQry);
  218. throw Exception(String(exception.ClassName()) + exception.Message);
  219. }
  220. }
  221. __finally
  222. {
  223. if (pADO)
  224. {
  225. pADO->Close();
  226. delete pADO;
  227. }
  228. }
  229. return true;
  230. }
  231. //---------------------------------------------------------------------------
  232. bool TItsAtrdManager::DeleteAtrd(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  233. {
  234. String sQry;
  235. TADOQuery *pADO = NULL;
  236. sQry = "UPDATE TB_ATRD \r\n"
  237. " SET DEL_YN = 'Y' \r\n"
  238. " WHERE ATRD_ID = :p01 \r\n";
  239. try
  240. {
  241. FLists.Lock();
  242. try
  243. {
  244. pADO = new TADOQuery(NULL);
  245. pADO->Close();
  246. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  247. pADO->SQL->Clear();
  248. pADO->SQL->Text = sQry;
  249. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  250. pADO->ExecSQL();
  251. DeleteAtrdRoad(AObj, ADbConn);
  252. return true;
  253. }
  254. catch(EDatabaseError &E)
  255. {
  256. DBERRORMSG("간선도로정보삭제", String(E.ClassName()), E.Message, sQry);
  257. throw Exception(String(E.ClassName()) + E.Message);
  258. }
  259. catch(Exception &exception)
  260. {
  261. DBERRORMSG("간선도로정보삭제", String(exception.ClassName()), exception.Message, sQry);
  262. throw Exception(String(exception.ClassName()) + exception.Message);
  263. }
  264. }
  265. __finally
  266. {
  267. if (pADO)
  268. {
  269. pADO->Close();
  270. delete pADO;
  271. }
  272. FLists.UnLock();
  273. }
  274. return true;
  275. }
  276. //---------------------------------------------------------------------------
  277. bool TItsAtrdManager::InsertAtrdRoad(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  278. {
  279. String sQry;
  280. TADOQuery *pADO = NULL;
  281. //링크구성정보 입력
  282. sQry = "INSERT INTO TB_ATRD_ROAD_RLTN (ATRD_ID, ROAD_ID, ORD ) \r\n"
  283. " VALUES (:p01, :p02, :p03) \r\n";
  284. try
  285. {
  286. try
  287. {
  288. pADO = new TADOQuery(NULL);
  289. pADO->Close();
  290. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  291. pADO->SQL->Clear();
  292. pADO->SQL->Text = sQry;
  293. FOR_STL(TItsAtrdRoad *, pObj, AObj->FSubLists)
  294. {
  295. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  296. pADO->Parameters->ParamByName("p02")->Value = pObj->ROAD_ID;
  297. pADO->Parameters->ParamByName("p03")->Value = pObj->ORD;
  298. pADO->ExecSQL();
  299. }
  300. return true;
  301. }
  302. catch(EDatabaseError &E)
  303. {
  304. DBERRORMSG("간선도로-구간정보입력", String(E.ClassName()), E.Message, sQry);
  305. throw Exception(String(E.ClassName()) + E.Message);
  306. }
  307. catch(Exception &exception)
  308. {
  309. DBERRORMSG("간선도로-구간정보입력", String(exception.ClassName()), exception.Message, sQry);
  310. throw Exception(String(exception.ClassName()) + exception.Message);
  311. }
  312. }
  313. __finally
  314. {
  315. if (pADO)
  316. {
  317. pADO->Close();
  318. delete pADO;
  319. }
  320. }
  321. return true;
  322. }
  323. //---------------------------------------------------------------------------
  324. bool TItsAtrdManager::UpdateAtrd(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  325. {
  326. String sQry;
  327. TADOQuery *pADO = NULL;
  328. sQry = "UPDATE TB_ATRD \r\n"
  329. " SET ATRD_NM = :p02, \r\n"
  330. " DRCT_CD = :p03, \r\n"
  331. " AREA_CD = :p04, \r\n"
  332. " DEL_YN = :p05 \r\n"
  333. " WHERE ATRD_ID = :p01 \r\n";
  334. try
  335. {
  336. FLists.Lock();
  337. try
  338. {
  339. pADO = new TADOQuery(NULL);
  340. pADO->Close();
  341. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  342. pADO->SQL->Clear();
  343. pADO->SQL->Text = sQry;
  344. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  345. pADO->Parameters->ParamByName("p02")->Value = AObj->ATRD_NM;
  346. pADO->Parameters->ParamByName("p03")->Value = AObj->DRCT_CD;
  347. pADO->Parameters->ParamByName("p04")->Value = AObj->AREA_CD;
  348. pADO->Parameters->ParamByName("p05")->Value = AObj->DEL_YN;
  349. pADO->ExecSQL();
  350. DeleteAtrdRoad(AObj, ADbConn);
  351. InsertAtrdRoad(AObj, ADbConn);
  352. return true;
  353. }
  354. catch(EDatabaseError &E)
  355. {
  356. DBERRORMSG("간선도로정보업데이트", String(E.ClassName()), E.Message, sQry);
  357. throw Exception(String(E.ClassName()) + E.Message);
  358. }
  359. catch(Exception &exception)
  360. {
  361. DBERRORMSG("간선도로정보업데이트", String(exception.ClassName()), exception.Message, sQry);
  362. throw Exception(String(exception.ClassName()) + exception.Message);
  363. }
  364. }
  365. __finally
  366. {
  367. if (pADO)
  368. {
  369. pADO->Close();
  370. delete pADO;
  371. }
  372. FLists.UnLock();
  373. }
  374. return true;
  375. }
  376. //---------------------------------------------------------------------------
  377. bool TItsAtrdManager::InsertAtrd(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  378. {
  379. String sQry;
  380. TADOQuery *pADO = NULL;
  381. sQry = "INSERT INTO TB_ATRD(ATRD_ID, ATRD_NM, DRCT_CD, AREA_CD, DEL_YN) \r\n"
  382. " VALUES(:p01, :p02, :p03, :p04, :p05) \r\n";
  383. try
  384. {
  385. FLists.Lock();
  386. try
  387. {
  388. pADO = new TADOQuery(NULL);
  389. pADO->Close();
  390. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  391. pADO->SQL->Clear();
  392. pADO->SQL->Text = sQry;
  393. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  394. pADO->Parameters->ParamByName("p02")->Value = AObj->ATRD_NM;
  395. pADO->Parameters->ParamByName("p03")->Value = AObj->DRCT_CD;
  396. pADO->Parameters->ParamByName("p04")->Value = AObj->AREA_CD;
  397. pADO->Parameters->ParamByName("p05")->Value = AObj->DEL_YN;
  398. pADO->ExecSQL();
  399. DeleteAtrdRoad(AObj, ADbConn);
  400. InsertAtrdRoad(AObj, ADbConn);
  401. return true;
  402. }
  403. catch(EDatabaseError &E)
  404. {
  405. DBERRORMSG("간선도로정보입력", String(E.ClassName()), E.Message, sQry);
  406. throw Exception(String(E.ClassName()) + E.Message);
  407. }
  408. catch(Exception &exception)
  409. {
  410. DBERRORMSG("간선도로정보입력", String(exception.ClassName()), exception.Message, sQry);
  411. throw Exception(String(exception.ClassName()) + exception.Message);
  412. }
  413. }
  414. __finally
  415. {
  416. if (pADO)
  417. {
  418. pADO->Close();
  419. delete pADO;
  420. }
  421. FLists.UnLock();
  422. }
  423. return true;
  424. }
  425. //---------------------------------------------------------------------------