CDSCrossF.cpp 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSCrossF.h"
  4. //---------------------------------------------------------------------------
  5. #pragma package(smart_init)
  6. //---------------------------------------------------------------------------
  7. String GetDrctDvsnCdNm(int ADrctDvsnCd) {
  8. // 방향 구분 코드(1:북,2:동,3:남,4:서,5:북동,6:남동,7:남서,8:북서)
  9. switch(ADrctDvsnCd) {
  10. case 1: return "북";
  11. case 2: return "동";
  12. case 3: return "남";
  13. case 4: return "서";
  14. case 5: return "북동";
  15. case 6: return "남동";
  16. case 7: return "남서";
  17. case 8: return "북서";
  18. default: break;
  19. }
  20. return "?";
  21. }
  22. void TCrossCam::SetInfo()
  23. {
  24. DRCT_DVSN_NM = GetDrctDvsnCdNm(DRCT_DVSN_CD);
  25. //CMRA_NM = "[" + DRCT_DVSN_NM + "] " + CMRA_NM;
  26. CMRA_NM = CMRA_NM + " [" + DRCT_DVSN_NM + "]";
  27. }
  28. //---------------------------------------------------------------------------
  29. void TCrossCam::Copy(TCrossCam *AObj)
  30. {
  31. if (AObj)
  32. {
  33. AObj->IXR_ID = IXR_ID;
  34. AObj->CMRA_ID = CMRA_ID;
  35. AObj->CMRA_NM = CMRA_NM;
  36. AObj->ISTL_LCTN = ISTL_LCTN;
  37. AObj->DRCT_DVSN_CD = DRCT_DVSN_CD;
  38. }
  39. }
  40. //---------------------------------------------------------------------------
  41. //---------------------------------------------------------------------------
  42. TCross::TCross()
  43. {
  44. }
  45. //---------------------------------------------------------------------------
  46. TCross::~TCross()
  47. {
  48. }
  49. //---------------------------------------------------------------------------
  50. //---------------------------------------------------------------------------
  51. TCrossManager *CrossManager = NULL;
  52. //---------------------------------------------------------------------------
  53. TCrossManager::TCrossManager()
  54. {
  55. }
  56. //---------------------------------------------------------------------------
  57. TCrossManager::~TCrossManager()
  58. {
  59. FLists.RemoveAll();
  60. FCamLists.RemoveAll();
  61. }
  62. //---------------------------------------------------------------------------
  63. bool TCrossManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  64. {
  65. String sQry;
  66. TADOQuery *pADO = NULL;
  67. sQry = "SELECT A.* \r\n"
  68. " FROM TB_SC_IXR_MNGM A \r\n"
  69. " WHERE A.USE_EN = 1 \r\n";
  70. FLists.Lock();
  71. try
  72. {
  73. FLists.RemoveAll();
  74. try
  75. {
  76. pADO = new TADOQuery(NULL);
  77. pADO->Close();
  78. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  79. pADO->SQL->Clear();
  80. pADO->SQL->Text = sQry;
  81. pADO->Prepared = true;
  82. pADO->Open();
  83. for( ; !pADO->Eof; pADO->Next())
  84. {
  85. TCross *pObj = new TCross();
  86. pObj->IXR_ID = pADO->FieldByName("IXR_ID")->AsString;
  87. pObj->IXR_NM = pADO->FieldByName("IXR_NM")->AsString.Trim();
  88. pObj->IXR_TYPE = pADO->FieldByName("IXR_TYPE")->AsString.Trim();
  89. FLists.Push(pObj->IXR_ID, pObj);
  90. }
  91. }
  92. catch(EDatabaseError &E)
  93. {
  94. throw Exception(String(E.ClassName()) + E.Message);
  95. }
  96. catch(Exception &e)
  97. {
  98. throw Exception(String(e.ClassName()) + e.Message);
  99. }
  100. }
  101. __finally
  102. {
  103. if (pADO)
  104. {
  105. pADO->Close();
  106. delete pADO;
  107. }
  108. FLists.UnLock();
  109. }
  110. return LoadCrossCam(ADbConn);
  111. }
  112. //---------------------------------------------------------------------------
  113. bool TCrossManager::LoadCrossCam(TADOConnection *ADbConn/*=NULL*/)
  114. {
  115. String sQry;
  116. TADOQuery *pADO = NULL;
  117. FLists.Lock();
  118. try
  119. {
  120. FOR_STL(TCross*, pObj, FLists)
  121. {
  122. pObj->FLists.RemoveAll();
  123. }
  124. }
  125. __finally
  126. {
  127. FLists.UnLock();
  128. }
  129. sQry = "SELECT A.IXR_ID, B.CMRA_ID, B.ISTL_LCTN, C.DRCT_LCTN AS CMRA_NM, C.DRCT_DVSN_CD \r\n"
  130. " FROM TB_SC_IXR_MNGM A, TB_SC_CMRA_MNGM B, TB_SC_CMRA_DRCT_MNGM C \r\n"
  131. " WHERE A.IXR_ID = B.IXR_ID \r\n"
  132. " AND B.CMRA_ID = C.CMRA_ID \r\n"
  133. " AND B.IXR_ID = C.IXR_ID \r\n"
  134. " AND A.USE_EN = 1 \r\n"
  135. " AND B.USE_EN = 1 \r\n"
  136. " ORDER BY A.IXR_ID, B.CMRA_ID \r\n";
  137. try
  138. {
  139. String WCAM_CTLR_NMBR;
  140. FLists.Lock();
  141. FCamLists.Lock();
  142. FCamLists.RemoveAll();
  143. try
  144. {
  145. pADO = new TADOQuery(NULL);
  146. pADO->Close();
  147. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  148. pADO->SQL->Clear();
  149. pADO->SQL->Text = sQry;
  150. pADO->Prepared = true;
  151. pADO->Open();
  152. for( ; !pADO->Eof; pADO->Next())
  153. {
  154. String IXR_ID = pADO->FieldByName("IXR_ID")->AsString;
  155. TCross *pCross = FLists.Find(String(IXR_ID));
  156. if (!pCross) continue;
  157. TCrossCam *pObj = new TCrossCam();
  158. if (pObj)
  159. {
  160. pObj->IXR_ID = IXR_ID;
  161. pObj->CMRA_ID = pADO->FieldByName("CMRA_ID")->AsString;
  162. pObj->CMRA_NM = pADO->FieldByName("CMRA_NM")->AsString;
  163. pObj->ISTL_LCTN = pADO->FieldByName("ISTL_LCTN")->AsString.Trim();
  164. pObj->DRCT_DVSN_CD = pADO->FieldByName("DRCT_DVSN_CD")->AsInteger;
  165. pObj->SetInfo();
  166. pCross->FLists.Push(pObj->CMRA_ID, pObj);
  167. TCrossCam *pObj2 = new TCrossCam();
  168. pObj->Copy(pObj2);
  169. FCamLists.Push(pObj2->CMRA_ID, pObj2);
  170. }
  171. }
  172. }
  173. catch(EDatabaseError &E)
  174. {
  175. throw Exception(String(E.ClassName()) + E.Message);
  176. }
  177. catch(Exception &e)
  178. {
  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. FCamLists.UnLock();
  191. }
  192. return true;
  193. }
  194. //---------------------------------------------------------------------------