CDSSgnlCtlrF.cpp 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSSgnlCtlrF.h"
  4. #include "ITS_OPLibF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. //---------------------------------------------------------------------------
  8. TSgnlCtlrManager *SgnlCtlrManager = NULL;
  9. //---------------------------------------------------------------------------
  10. TSgnlCtlrManager::TSgnlCtlrManager()
  11. {
  12. }
  13. //---------------------------------------------------------------------------
  14. TSgnlCtlrManager::~TSgnlCtlrManager()
  15. {
  16. FLists.RemoveAll();
  17. }
  18. //---------------------------------------------------------------------------
  19. bool TSgnlCtlrManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  20. {
  21. String sQry;
  22. TADOQuery *pADO = NULL;
  23. sQry = "SELECT A.SGNL_IXR_NMBR, A.X_CRDN/1000000 AS X_CRDN, A.Y_CRDN/1000000 AS Y_CRDN, \r\n"
  24. " B.IXR_NM AS IXR_NM, \r\n"
  25. " NVL(B.NODE_ID, 0) AS NODE_ID, \r\n"
  26. " NVL(B.CCTV_TYPE, 0) AS CCTV_TYPE, \r\n"
  27. " NVL(B.CCTV_NMBR, 0) AS CCTV_NMBR \r\n"
  28. " FROM SGNL_CTLR A \r\n"
  29. " LEFT OUTER JOIN SGNL_IXR_MNGM B \r\n"
  30. " ON A.SGNL_IXR_NMBR = B.SGNL_IXR_NMBR \r\n"
  31. " ORDER BY A.SGNL_IXR_NMBR \r\n";
  32. FLists.Lock();
  33. try
  34. {
  35. FLists.RemoveAll();
  36. try
  37. {
  38. pADO = new TADOQuery(NULL);
  39. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  40. pADO->SQL->Clear();
  41. pADO->SQL->Text = sQry;
  42. pADO->Prepared = true;
  43. pADO->Open();
  44. for( ; !pADO->Eof; pADO->Next())
  45. {
  46. TSgnlCtlr *pObj = new TSgnlCtlr();
  47. pObj->SGNL_IXR_NMBR = pADO->FieldByName("SGNL_IXR_NMBR")->AsString;
  48. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsFloat;
  49. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsFloat;
  50. pObj->IXR_NM = pADO->FieldByName("IXR_NM")->AsString.Trim();
  51. pObj->NODE_ID = pADO->FieldByName("NODE_ID")->AsString;
  52. pObj->CCTV_TYPE = pADO->FieldByName("CCTV_TYPE")->AsInteger;
  53. pObj->CCTV_NMBR = pADO->FieldByName("CCTV_NMBR")->AsString;
  54. pObj->CTLR_NMBR = pObj->SGNL_IXR_NMBR;
  55. pObj->CTLR_ID = pObj->SGNL_IXR_NMBR;
  56. pObj->NAME = pObj->IXR_NM;
  57. FLists.Push(pObj->SGNL_IXR_NMBR, pObj);
  58. }
  59. }
  60. catch(EDatabaseError &E)
  61. {
  62. DBERRORMSG("TSgnlCtlrManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
  63. throw Exception(String(E.ClassName()) + E.Message);
  64. }
  65. catch(Exception &e)
  66. {
  67. DBERRORMSG("TSgnlCtlrManager::LoadFromDb", String(e.ClassName()), e.Message, sQry);
  68. throw Exception(String(e.ClassName()) + e.Message);
  69. }
  70. }
  71. __finally
  72. {
  73. if (pADO)
  74. {
  75. pADO->Close();
  76. delete pADO;
  77. }
  78. FLists.UnLock();
  79. }
  80. return true;
  81. }
  82. //---------------------------------------------------------------------------