xCDSVmsTrafficF.cpp 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSVmsTrafficF.h"
  4. #include "ITSUtilF.h"
  5. #include "AppGlobalF.h"
  6. //---------------------------------------------------------------------------
  7. #pragma package(smart_init)
  8. TVmsTraffic::TVmsTraffic()
  9. {
  10. }
  11. //---------------------------------------------------------------------------
  12. TVmsTraffic::~TVmsTraffic()
  13. {
  14. }
  15. //---------------------------------------------------------------------------
  16. //---------------------------------------------------------------------------
  17. TVmsTrafficManager *VmsTrafficManager = NULL;
  18. //---------------------------------------------------------------------------
  19. /*
  20. * Link Traffic Manager
  21. */
  22. TVmsTrafficManager::TVmsTrafficManager()
  23. {
  24. }
  25. //---------------------------------------------------------------------------
  26. TVmsTrafficManager::~TVmsTrafficManager()
  27. {
  28. }
  29. //---------------------------------------------------------------------------
  30. void TVmsTrafficManager::Init()
  31. {
  32. FLink = false;
  33. FIfsc = false;
  34. FRoad = false;
  35. }
  36. //---------------------------------------------------------------------------
  37. bool TVmsTrafficManager::IsLoading()
  38. {
  39. return (FLink && FIfsc && FRoad) ? true : false;
  40. }
  41. //---------------------------------------------------------------------------
  42. bool TVmsTrafficManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  43. {
  44. String sQry;
  45. TADOQuery *pADO = NULL;
  46. //ITSUtil_Trace("TVmsTrafficManager::LoadFromDb - start");
  47. sQry = "SELECT 2 AS LEVL, A.IFSC_ID AS LINKID, NVL(B.SPED, 0) AS SPEED, NVL(CMTR_GRAD_CD, 'LTC0') CMTR_GRAD_CD, \r\n"
  48. " DECODE(CMTR_GRAD_CD, 'LTC1', '1', 'LTC2', '2', 'LTC3', '3', '0') TRF_GRADE, \r\n"
  49. " NVL(B.PRCN_DT, '19000101000000') AS REGDATE, \r\n"
  50. " NVL(B.DATA_NUM, 0) AS DATACNT, \r\n"
  51. " NVL(B.TRVL_HH, 0) AS TRVTM \r\n"
  52. " FROM TB_IFSC A, \r\n"
  53. " (SELECT * \r\n"
  54. " FROM TB_IFSC_TRAF \r\n"
  55. //" WHERE PRCN_DT > TO_CHAR(SYSDATE - 5 / 1440, 'YYYYMMDDHH24MISS') \r\n"
  56. " ) B \r\n"
  57. " WHERE A.IFSC_ID = B.IFSC_ID(+) \r\n";
  58. try
  59. {
  60. FLists.Lock();
  61. FLists.RemoveAll();
  62. try
  63. {
  64. pADO = new TADOQuery(NULL);
  65. pADO->Close();
  66. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  67. pADO->SQL->Clear();
  68. pADO->SQL->Text = sQry;
  69. pADO->Open();
  70. //int nRows = pADO->RecordCount;
  71. for( ; !pADO->Eof; pADO->Next())
  72. {
  73. TVmsTraffic *pTraffic = new TVmsTraffic();
  74. pTraffic->LEVL = pADO->FieldByName("LEVL")->AsInteger;
  75. pTraffic->LINKID = pADO->FieldByName("LINKID")->AsString;
  76. pTraffic->SPEED = pADO->FieldByName("SPEED")->AsInteger;
  77. pTraffic->CMTR_GRAD_CD = pADO->FieldByName("CMTR_GRAD_CD")->AsString;
  78. pTraffic->TRF_GRADE = pADO->FieldByName("TRF_GRADE")->AsString;
  79. pTraffic->REGDATE = pADO->FieldByName("REGDATE")->AsString;
  80. pTraffic->DATACNT = pADO->FieldByName("DATACNT")->AsInteger;
  81. pTraffic->TRVTM = pADO->FieldByName("TRVTM")->AsInteger;
  82. FLists.Push(pTraffic->LINKID, pTraffic);
  83. }
  84. }
  85. catch(EDatabaseError &E)
  86. {
  87. DBERRORMSG("소통정보조회", String(E.ClassName()), E.Message, sQry);
  88. throw Exception(String(E.ClassName()) + E.Message);
  89. }
  90. catch(Exception &exception)
  91. {
  92. DBERRORMSG("소통정보조회", String(exception.ClassName()), exception.Message, sQry);
  93. throw Exception(String(exception.ClassName()) + exception.Message);
  94. }
  95. }
  96. __finally
  97. {
  98. if (pADO)
  99. {
  100. pADO->Close();
  101. delete pADO;
  102. }
  103. FLists.UnLock();
  104. }
  105. return true;
  106. }
  107. //---------------------------------------------------------------------------