CDSAtrdF.cpp 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673
  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 = 0;
  22. MEM_DEL = "";
  23. }
  24. //---------------------------------------------------------------------------
  25. TItsAtrdRoad::~TItsAtrdRoad()
  26. {
  27. }
  28. //---------------------------------------------------------------------------
  29. TItsAtrd::TItsAtrd()
  30. {
  31. Completed = false;
  32. FEditMode = DB_INIT;
  33. FGridIndex = -1;
  34. MEM_DEL = "N";
  35. LENGTH = 0;
  36. //Clear();
  37. }
  38. //---------------------------------------------------------------------------
  39. void TItsAtrd::Clear()
  40. {
  41. ATRD_ID = "";
  42. ATRD_NM = "";
  43. DRCT_CD = "";
  44. AREA_CD = "";
  45. DEL_YN = "";
  46. MEM_DEL = "";
  47. LENGTH = 0;
  48. }
  49. //---------------------------------------------------------------------------
  50. TItsAtrd::~TItsAtrd()
  51. {
  52. }
  53. //---------------------------------------------------------------------------
  54. //---------------------------------------------------------------------------
  55. TItsAtrdManager *ItsAtrdManager = NULL;
  56. //---------------------------------------------------------------------------
  57. /*
  58. * Atrd Manager
  59. */
  60. TItsAtrdManager::TItsAtrdManager()
  61. {
  62. }
  63. //---------------------------------------------------------------------------
  64. TItsAtrdManager::~TItsAtrdManager()
  65. {
  66. FLists.RemoveAll();
  67. FNameLists.RemoveAll();
  68. FCDSNameLists.RemoveAll();
  69. }
  70. //---------------------------------------------------------------------------
  71. bool TItsAtrdManager::LoadFromDbAtrdName(TADOConnection *ADbConn/*=NULL*/)
  72. {
  73. String sQry;
  74. TADOQuery *pADO = NULL;
  75. sQry = "SELECT DISTINCT TRIM(ATRD_NM) AS ATRD_NM \r\n"
  76. " FROM TB_ATRD \r\n";
  77. try
  78. {
  79. FCDSNameSelCnt = 0;
  80. FCDSNameLists.Lock();
  81. FCDSNameLists.RemoveAll();
  82. try
  83. {
  84. pADO = new TADOQuery(NULL);
  85. pADO->Close();
  86. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  87. pADO->SQL->Clear();
  88. pADO->SQL->Text = sQry;
  89. pADO->Prepared = true;
  90. pADO->Open();
  91. for( ; !pADO->Eof; pADO->Next())
  92. {
  93. TCDSAtrdName *pObj = new TCDSAtrdName();
  94. pObj->ATRD_NM = pADO->FieldByName("ATRD_NM")->AsString;
  95. pObj->IsSelected = true;
  96. FCDSNameSelCnt++;
  97. FCDSNameLists.Push(pObj->ATRD_NM, pObj);
  98. }
  99. }
  100. catch(EDatabaseError &E)
  101. {
  102. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  103. DBERRORMSG("TItsAtrdManager::LoadFromDbAtrdName", String(E.ClassName()), E.Message, sQry);
  104. throw Exception(String(E.ClassName()) + E.Message);
  105. }
  106. catch(Exception &exception)
  107. {
  108. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  109. DBERRORMSG("TItsAtrdManager::LoadFromDbAtrdName", String(exception.ClassName()), exception.Message, sQry);
  110. throw Exception(String(exception.ClassName()) + exception.Message);
  111. }
  112. }
  113. __finally
  114. {
  115. if (pADO)
  116. {
  117. pADO->Close();
  118. delete pADO;
  119. }
  120. FCDSNameLists.UnLock();
  121. }
  122. return true;
  123. }
  124. //---------------------------------------------------------------------------
  125. bool TItsAtrdManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  126. {
  127. LoadFromAtrdDb(ADbConn);
  128. LoadFromAtrdRoadDb(ADbConn);
  129. return true;
  130. }
  131. //---------------------------------------------------------------------------
  132. bool TItsAtrdManager::LoadFromAtrdDb(TADOConnection *ADbConn/*=NULL*/)
  133. {
  134. String sQry;
  135. TADOQuery *pADO = NULL;
  136. sQry = "SELECT ATRD_ID, \r\n"
  137. " TRIM(ATRD_NM) AS ATRD_NM, \r\n"
  138. " DRCT_CD, \r\n"
  139. " TRIM(DRCT_NM) AS DRCT_NM, \r\n"
  140. " AREA_CD, \r\n"
  141. " DEL_YN \r\n"
  142. " FROM TB_ATRD \r\n";
  143. //" WHERE DEL_YN = 'N' \r\n";
  144. //" ORDER BY ATRD_ID \r\n";
  145. try
  146. {
  147. FLists.Lock();
  148. FLists.RemoveAll();
  149. FNameLists.Lock();
  150. FNameLists.RemoveAll();
  151. try
  152. {
  153. pADO = new TADOQuery(NULL);
  154. pADO->Close();
  155. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  156. pADO->SQL->Clear();
  157. pADO->SQL->Text = sQry;
  158. pADO->Prepared = true;
  159. pADO->Open();
  160. for( ; !pADO->Eof; pADO->Next())
  161. {
  162. TItsAtrd *pObj = new TItsAtrd();
  163. pObj->ATRD_ID = pADO->FieldByName("ATRD_ID")->AsString;
  164. pObj->ATRD_NM = pADO->FieldByName("ATRD_NM")->AsString;
  165. pObj->DRCT_CD = pADO->FieldByName("DRCT_CD")->AsString;
  166. pObj->DRCT_NM = pADO->FieldByName("DRCT_NM")->AsString;
  167. pObj->AREA_CD = pADO->FieldByName("AREA_CD")->AsString;
  168. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  169. pObj->LENGTH = 0;
  170. FLists.Push(pObj->ATRD_ID, pObj);
  171. pObj->Completed = true;
  172. pObj->MEM_DEL = "N";
  173. //////////////////////////////////////////////
  174. String AtrdName = pObj->ATRD_NM;
  175. TItsAtrdName *pAtrd = FNameLists.Find(AtrdName);
  176. if (pAtrd)
  177. {
  178. if (pObj->DRCT_CD.Trim() == "0")
  179. {
  180. pAtrd->UpAtrdNm = pObj->DRCT_NM;
  181. pAtrd->UpAtrdId = pObj->ATRD_ID;
  182. pAtrd->IsUpAtrd = true;
  183. }
  184. else
  185. {
  186. pAtrd->DnAtrdNm = pObj->DRCT_NM;
  187. pAtrd->DnAtrdId = pObj->ATRD_ID;
  188. pAtrd->IsDnAtrd = true;
  189. }
  190. }
  191. else
  192. {
  193. pAtrd = new TItsAtrdName();
  194. pAtrd->Name = AtrdName;
  195. pAtrd->RowNo = FNameLists.Size();
  196. if (pObj->DRCT_CD.Trim() == "0")
  197. {
  198. pAtrd->UpAtrdNm = pObj->DRCT_NM;
  199. pAtrd->UpAtrdId = pObj->ATRD_ID;
  200. pAtrd->IsUpAtrd = true;
  201. }
  202. else
  203. {
  204. pAtrd->DnAtrdNm = pObj->DRCT_NM;
  205. pAtrd->DnAtrdId = pObj->ATRD_ID;
  206. pAtrd->IsDnAtrd = true;
  207. }
  208. FNameLists.Push(AtrdName, pAtrd);
  209. }
  210. //////////////////////////////////////////////
  211. }
  212. }
  213. catch(EDatabaseError &E)
  214. {
  215. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  216. DBERRORMSG("TItsAtrdManager::LoadFromAtrdDb", String(E.ClassName()), E.Message, sQry);
  217. throw Exception(String(E.ClassName()) + E.Message);
  218. }
  219. catch(Exception &exception)
  220. {
  221. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  222. DBERRORMSG("TItsAtrdManager::LoadFromAtrdDb", String(exception.ClassName()), exception.Message, sQry);
  223. throw Exception(String(exception.ClassName()) + exception.Message);
  224. }
  225. }
  226. __finally
  227. {
  228. if (pADO)
  229. {
  230. pADO->Close();
  231. delete pADO;
  232. }
  233. FLists.UnLock();
  234. FNameLists.UnLock();
  235. }
  236. return true;
  237. }
  238. //---------------------------------------------------------------------------
  239. bool TItsAtrdManager::LoadFromAtrdRoadDb(TADOConnection *ADbConn/*=NULL*/)
  240. {
  241. String sQry;
  242. TADOQuery *pADO = NULL;
  243. sQry = "SELECT ATRD_ID, \r\n"
  244. " ROAD_ID, \r\n"
  245. " ORD \r\n"
  246. " FROM TB_ATRD_RLTN_ROAD \r\n";
  247. " ORDER BY ATRD_ID, ORD \r\n";
  248. try
  249. {
  250. TItsAtrd *pAtrd;
  251. FLists.Lock();
  252. try
  253. {
  254. pADO = new TADOQuery(NULL);
  255. pADO->Close();
  256. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  257. pADO->SQL->Clear();
  258. pADO->SQL->Text = sQry;
  259. pADO->Prepared = true;
  260. pADO->Open();
  261. for( ; !pADO->Eof; pADO->Next())
  262. {
  263. String ATRD_ID = pADO->FieldByName("ATRD_ID")->AsString;
  264. pAtrd = FLists.Find(ATRD_ID);
  265. if (!pAtrd) continue;
  266. TItsAtrdRoad *pObj = new TItsAtrdRoad();
  267. pObj->ATRD_ID = ATRD_ID;
  268. pObj->ROAD_ID = pADO->FieldByName("ROAD_ID")->AsString;
  269. pObj->ORD = pADO->FieldByName("ORD")->AsInteger;
  270. pAtrd->FRoads.Push(pObj->ORD, pObj);
  271. pObj->Completed = true;
  272. pObj->MEM_DEL = "N";
  273. }
  274. }
  275. catch(EDatabaseError &E)
  276. {
  277. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  278. DBERRORMSG("TItsAtrdManager::LoadFromAtrdRoadDb", String(E.ClassName()), E.Message, sQry);
  279. throw Exception(String(E.ClassName()) + E.Message);
  280. }
  281. catch(Exception &exception)
  282. {
  283. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  284. DBERRORMSG("TItsAtrdManager::LoadFromAtrdRoadDb", String(exception.ClassName()), exception.Message, sQry);
  285. throw Exception(String(exception.ClassName()) + exception.Message);
  286. }
  287. }
  288. __finally
  289. {
  290. if (pADO)
  291. {
  292. pADO->Close();
  293. delete pADO;
  294. }
  295. FLists.UnLock();
  296. }
  297. return true;
  298. }
  299. //---------------------------------------------------------------------------
  300. bool TItsAtrdManager::LoadAtrdLength(TADOConnection *ADbConn/*=NULL*/)
  301. {
  302. String sQry;
  303. TADOQuery *pADO = NULL;
  304. sQry = "SELECT A.ATRD_ID, SUM(B.SECT_LNGT) AS ATRD_LNGT \r\n"
  305. " FROM TB_ATRD_RLTN_ROAD A, TB_ROAD B \r\n"
  306. " WHERE A.ROAD_ID = B.ROAD_ID \r\n"
  307. " GROUP BY A.ATRD_ID \r\n";
  308. try
  309. {
  310. TItsAtrd *pAtrd;
  311. FLists.Lock();
  312. try
  313. {
  314. pADO = new TADOQuery(NULL);
  315. pADO->Close();
  316. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  317. pADO->SQL->Clear();
  318. pADO->SQL->Text = sQry;
  319. pADO->Prepared = true;
  320. pADO->Open();
  321. for( ; !pADO->Eof; pADO->Next())
  322. {
  323. String ATRD_ID = pADO->FieldByName("ATRD_ID")->AsString;
  324. pAtrd = FLists.Find(ATRD_ID);
  325. if (!pAtrd) continue;
  326. pAtrd->LENGTH = pADO->FieldByName("ATRD_LNGT")->AsInteger;
  327. }
  328. }
  329. catch(EDatabaseError &E)
  330. {
  331. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  332. DBERRORMSG("TItsAtrdManager::LoadAtrdLength", String(E.ClassName()), E.Message, sQry);
  333. throw Exception(String(E.ClassName()) + E.Message);
  334. }
  335. catch(Exception &exception)
  336. {
  337. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  338. DBERRORMSG("TItsAtrdManager::LoadAtrdLength", String(exception.ClassName()), exception.Message, sQry);
  339. throw Exception(String(exception.ClassName()) + exception.Message);
  340. }
  341. }
  342. __finally
  343. {
  344. if (pADO)
  345. {
  346. pADO->Close();
  347. delete pADO;
  348. }
  349. FLists.UnLock();
  350. }
  351. return true;
  352. }
  353. //---------------------------------------------------------------------------
  354. bool TItsAtrdManager::DeleteAtrdRoad(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  355. {
  356. String sQry;
  357. TADOQuery *pADO = NULL;
  358. sQry = "DELETE TB_ATRD_RLTN_ROAD \r\n"
  359. " WHERE ATRD_ID = :p01 \r\n";
  360. try
  361. {
  362. try
  363. {
  364. pADO = new TADOQuery(NULL);
  365. pADO->Close();
  366. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  367. pADO->SQL->Clear();
  368. pADO->SQL->Text = sQry;
  369. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  370. pADO->ExecSQL();
  371. return true;
  372. }
  373. catch(EDatabaseError &E)
  374. {
  375. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  376. DBERRORMSG("TItsAtrdManager::DeleteAtrdRoad", String(E.ClassName()), E.Message, sQry);
  377. throw Exception(String(E.ClassName()) + E.Message);
  378. }
  379. catch(Exception &exception)
  380. {
  381. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  382. DBERRORMSG("TItsAtrdManager::DeleteAtrdRoad", String(exception.ClassName()), exception.Message, sQry);
  383. throw Exception(String(exception.ClassName()) + exception.Message);
  384. }
  385. }
  386. __finally
  387. {
  388. if (pADO)
  389. {
  390. pADO->Close();
  391. delete pADO;
  392. }
  393. }
  394. return true;
  395. }
  396. //---------------------------------------------------------------------------
  397. bool TItsAtrdManager::DeleteAtrd(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  398. {
  399. String sQry;
  400. TADOQuery *pADO = NULL;
  401. sQry = "UPDATE TB_ATRD \r\n"
  402. " SET DEL_YN = 'Y' \r\n"
  403. " WHERE ATRD_ID = :p01 \r\n";
  404. try
  405. {
  406. FLists.Lock();
  407. try
  408. {
  409. pADO = new TADOQuery(NULL);
  410. pADO->Close();
  411. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  412. pADO->SQL->Clear();
  413. pADO->SQL->Text = sQry;
  414. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  415. pADO->ExecSQL();
  416. DeleteAtrdRoad(AObj, ADbConn);
  417. return true;
  418. }
  419. catch(EDatabaseError &E)
  420. {
  421. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  422. DBERRORMSG("TItsAtrdManager::DeleteAtrd", String(E.ClassName()), E.Message, sQry);
  423. throw Exception(String(E.ClassName()) + E.Message);
  424. }
  425. catch(Exception &exception)
  426. {
  427. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  428. DBERRORMSG("TItsAtrdManager::DeleteAtrd", String(exception.ClassName()), exception.Message, sQry);
  429. throw Exception(String(exception.ClassName()) + exception.Message);
  430. }
  431. }
  432. __finally
  433. {
  434. if (pADO)
  435. {
  436. pADO->Close();
  437. delete pADO;
  438. }
  439. FLists.UnLock();
  440. }
  441. return true;
  442. }
  443. //---------------------------------------------------------------------------
  444. bool TItsAtrdManager::InsertAtrdRoad(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  445. {
  446. String sQry;
  447. TADOQuery *pADO = NULL;
  448. //¸µÅ©±¸¼ºÁ¤º¸ ÀÔ·Â
  449. sQry = "INSERT INTO TB_ATRD_RLTN_ROAD (ATRD_ID, ROAD_ID, ORD ) \r\n"
  450. " VALUES (:p01, :p02, :p03) \r\n";
  451. try
  452. {
  453. try
  454. {
  455. pADO = new TADOQuery(NULL);
  456. pADO->Close();
  457. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  458. pADO->SQL->Clear();
  459. pADO->SQL->Text = sQry;
  460. FOR_STL(TItsAtrdRoad *, pObj, AObj->FRoads)
  461. {
  462. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  463. pADO->Parameters->ParamByName("p02")->Value = pObj->ROAD_ID;
  464. pADO->Parameters->ParamByName("p03")->Value = pObj->ORD;
  465. pADO->ExecSQL();
  466. }
  467. return true;
  468. }
  469. catch(EDatabaseError &E)
  470. {
  471. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  472. DBERRORMSG("TItsAtrdManager::InsertAtrdRoad", String(E.ClassName()), E.Message, sQry);
  473. throw Exception(String(E.ClassName()) + E.Message);
  474. }
  475. catch(Exception &exception)
  476. {
  477. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  478. DBERRORMSG("TItsAtrdManager::InsertAtrdRoad", String(exception.ClassName()), exception.Message, sQry);
  479. throw Exception(String(exception.ClassName()) + exception.Message);
  480. }
  481. }
  482. __finally
  483. {
  484. if (pADO)
  485. {
  486. pADO->Close();
  487. delete pADO;
  488. }
  489. }
  490. return true;
  491. }
  492. //---------------------------------------------------------------------------
  493. bool TItsAtrdManager::UpdateAtrd(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  494. {
  495. String sQry;
  496. TADOQuery *pADO = NULL;
  497. sQry = "UPDATE TB_ATRD \r\n"
  498. " SET ATRD_NM = :p02, \r\n"
  499. " DRCT_CD = :p03, \r\n"
  500. " AREA_CD = :p04, \r\n"
  501. " DEL_YN = :p05, \r\n"
  502. " DRCT_NM = :p06 \r\n"
  503. " WHERE ATRD_ID = :p01 \r\n";
  504. try
  505. {
  506. FLists.Lock();
  507. try
  508. {
  509. pADO = new TADOQuery(NULL);
  510. pADO->Close();
  511. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  512. pADO->SQL->Clear();
  513. pADO->SQL->Text = sQry;
  514. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  515. pADO->Parameters->ParamByName("p02")->Value = AObj->ATRD_NM;
  516. pADO->Parameters->ParamByName("p03")->Value = AObj->DRCT_CD;
  517. pADO->Parameters->ParamByName("p04")->Value = AObj->AREA_CD;
  518. pADO->Parameters->ParamByName("p05")->Value = AObj->DEL_YN;
  519. pADO->Parameters->ParamByName("p06")->Value = AObj->DRCT_NM;
  520. pADO->ExecSQL();
  521. DeleteAtrdRoad(AObj, ADbConn);
  522. InsertAtrdRoad(AObj, ADbConn);
  523. return true;
  524. }
  525. catch(EDatabaseError &E)
  526. {
  527. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  528. DBERRORMSG("TItsAtrdManager::UpdateAtrd", String(E.ClassName()), E.Message, sQry);
  529. throw Exception(String(E.ClassName()) + E.Message);
  530. }
  531. catch(Exception &exception)
  532. {
  533. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  534. DBERRORMSG("TItsAtrdManager::UpdateAtrd", String(exception.ClassName()), exception.Message, sQry);
  535. throw Exception(String(exception.ClassName()) + exception.Message);
  536. }
  537. }
  538. __finally
  539. {
  540. if (pADO)
  541. {
  542. pADO->Close();
  543. delete pADO;
  544. }
  545. FLists.UnLock();
  546. }
  547. return true;
  548. }
  549. //---------------------------------------------------------------------------
  550. bool TItsAtrdManager::InsertAtrd(TItsAtrd *AObj, TADOConnection *ADbConn/*=NULL*/)
  551. {
  552. String sQry;
  553. TADOQuery *pADO = NULL;
  554. sQry = "INSERT INTO TB_ATRD(ATRD_ID, ATRD_NM, DRCT_CD, AREA_CD, DEL_YN, DRCT_NM) \r\n"
  555. " VALUES(:p01, :p02, :p03, :p04, :p05, :p06) \r\n";
  556. try
  557. {
  558. FLists.Lock();
  559. try
  560. {
  561. pADO = new TADOQuery(NULL);
  562. pADO->Close();
  563. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  564. pADO->SQL->Clear();
  565. pADO->SQL->Text = sQry;
  566. pADO->Parameters->ParamByName("p01")->Value = AObj->ATRD_ID;
  567. pADO->Parameters->ParamByName("p02")->Value = AObj->ATRD_NM;
  568. pADO->Parameters->ParamByName("p03")->Value = AObj->DRCT_CD;
  569. pADO->Parameters->ParamByName("p04")->Value = AObj->AREA_CD;
  570. pADO->Parameters->ParamByName("p05")->Value = AObj->DEL_YN;
  571. pADO->Parameters->ParamByName("p06")->Value = AObj->DRCT_NM;
  572. pADO->ExecSQL();
  573. DeleteAtrdRoad(AObj, ADbConn);
  574. InsertAtrdRoad(AObj, ADbConn);
  575. return true;
  576. }
  577. catch(EDatabaseError &E)
  578. {
  579. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  580. DBERRORMSG("TItsAtrdManager::InsertAtrd", String(E.ClassName()), E.Message, sQry);
  581. throw Exception(String(E.ClassName()) + E.Message);
  582. }
  583. catch(Exception &exception)
  584. {
  585. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  586. DBERRORMSG("TItsAtrdManager::InsertAtrd", String(exception.ClassName()), exception.Message, sQry);
  587. throw Exception(String(exception.ClassName()) + exception.Message);
  588. }
  589. }
  590. __finally
  591. {
  592. if (pADO)
  593. {
  594. pADO->Close();
  595. delete pADO;
  596. }
  597. FLists.UnLock();
  598. }
  599. return true;
  600. }
  601. //---------------------------------------------------------------------------