CDSVmsIfscF.cpp 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSVmsIfscF.h"
  4. #include "VmsCommonLibF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. //---------------------------------------------------------------------------
  8. TVmsIfsc::TVmsIfsc()
  9. {
  10. }
  11. //---------------------------------------------------------------------------
  12. TVmsIfsc::~TVmsIfsc()
  13. {
  14. }
  15. //---------------------------------------------------------------------------
  16. //---------------------------------------------------------------------------
  17. TVmsSect::TVmsSect()
  18. {
  19. }
  20. //---------------------------------------------------------------------------
  21. TVmsSect::~TVmsSect()
  22. {
  23. }
  24. //---------------------------------------------------------------------------
  25. //---------------------------------------------------------------------------
  26. TVmsRltnSect::TVmsRltnSect()
  27. {
  28. }
  29. //---------------------------------------------------------------------------
  30. TVmsRltnSect::~TVmsRltnSect()
  31. {
  32. FLists.RemoveAll();
  33. }
  34. //---------------------------------------------------------------------------
  35. //---------------------------------------------------------------------------
  36. TVmsIfscManager *VmsIfscManager = NULL;
  37. //---------------------------------------------------------------------------
  38. TVmsIfscManager::TVmsIfscManager()
  39. {
  40. }
  41. //---------------------------------------------------------------------------
  42. TVmsIfscManager::~TVmsIfscManager()
  43. {
  44. FLists.RemoveAll();
  45. FRltnLists.RemoveAll();
  46. }
  47. //---------------------------------------------------------------------------
  48. bool TVmsIfscManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  49. {
  50. String sQry;
  51. TADOQuery *pADO = NULL;
  52. FLists.Lock();
  53. FLists.RemoveAll();
  54. sQry = "SELECT A.VMS_SECT_ID, \r\n"
  55. " A.VMS_SECT_NM, \r\n"
  56. " A.VMS_SECT_ENG_NM, \r\n"
  57. " A.VMS_DSPL_STRT_NM, \r\n"
  58. " A.VMS_DSPL_END_NM, \r\n"
  59. " A.VMS_DSPL_SECT_NM, \r\n"
  60. " A.ROAD_GRD \r\n"
  61. " FROM TB_VMS_SECT A \r\n"
  62. " ORDER BY A.VMS_SECT_ID \r\n";
  63. try {
  64. try {
  65. pADO = new TADOQuery(NULL);
  66. pADO->Close();
  67. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  68. pADO->SQL->Clear();
  69. pADO->SQL->Text = sQry;
  70. pADO->Open();
  71. for( ; !pADO->Eof; pADO->Next()) {
  72. TVmsIfsc *pObj = new TVmsIfsc();
  73. pObj->VMS_SECT_ID = pADO->FieldByName("VMS_SECT_ID")->AsString;
  74. pObj->VMS_SECT_NM = pADO->FieldByName("VMS_SECT_NM")->AsString;
  75. pObj->VMS_SECT_ENG_NM = pADO->FieldByName("VMS_SECT_ENG_NM")->AsString;
  76. pObj->VMS_DSPL_STRT_NM = pADO->FieldByName("VMS_DSPL_STRT_NM")->AsString;
  77. pObj->VMS_DSPL_END_NM = pADO->FieldByName("VMS_DSPL_END_NM")->AsString;
  78. pObj->VMS_DSPL_SECT_NM = pADO->FieldByName("VMS_DSPL_SECT_NM")->AsString;
  79. pObj->ROAD_GRD = pADO->FieldByName("ROAD_GRD")->AsString;
  80. FLists.Push(pObj->VMS_SECT_ID, pObj);
  81. }
  82. }
  83. catch(EDatabaseError &E) {
  84. DBERRORMSG("TVmsIfscManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
  85. return false;
  86. }
  87. catch(Exception &e) {
  88. DBERRORMSG("TVmsIfscManager::LoadFromDb", String(e.ClassName()), e.Message, sQry);
  89. return false;
  90. }
  91. }
  92. __finally {
  93. if (pADO) {
  94. pADO->Close();
  95. delete pADO;
  96. }
  97. FLists.UnLock();
  98. }
  99. return LoadSubFromDb(ADbConn);
  100. }
  101. //---------------------------------------------------------------------------
  102. bool TVmsIfscManager::LoadSubFromDb(TADOConnection *ADbConn/*=NULL*/)
  103. {
  104. String sQry;
  105. TADOQuery *pADO = NULL;
  106. sQry = "SELECT A.VMS_CTLR_ID, A.SN, \r\n"
  107. " A.VMS_SECT_ID, A.VMS_DTUR_SECT_ID \r\n"
  108. " FROM TB_VMS_VMS_SECT A, \r\n"
  109. " TB_VMS_SECT B \r\n"
  110. " WHERE A.VMS_SECT_ID = B.VMS_SECT_ID \r\n"
  111. " ORDER BY A.VMS_CTLR_ID, A.SN \r\n";
  112. FRltnLists.Lock();
  113. FRltnLists.RemoveAll();
  114. try {
  115. try
  116. {
  117. pADO = new TADOQuery(NULL);
  118. pADO->Close();
  119. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  120. pADO->SQL->Clear();
  121. pADO->SQL->Text = sQry;
  122. pADO->Open();
  123. for( ; !pADO->Eof; pADO->Next()) {
  124. TVmsSect *pSect = new TVmsSect();
  125. pSect->VMS_CTLR_ID = pADO->FieldByName("VMS_CTLR_ID")->AsString;
  126. pSect->SN = pADO->FieldByName("SN")->AsInteger;
  127. pSect->VMS_SECT_ID = pADO->FieldByName("VMS_SECT_ID")->AsString;
  128. pSect->VMS_DTUR_SECT_ID = pADO->FieldByName("VMS_DTUR_SECT_ID")->AsString;
  129. TVmsRltnSect *pRltnSect = FRltnLists.Find(pSect->VMS_CTLR_ID);
  130. if (pRltnSect == NULL) {
  131. pRltnSect = new TVmsRltnSect();
  132. pRltnSect->VMS_CTLR_ID = pSect->VMS_CTLR_ID;
  133. FRltnLists.Push(pRltnSect->VMS_CTLR_ID, pRltnSect);
  134. }
  135. pRltnSect->FLists.Push(pSect->SN, pSect);
  136. }
  137. }
  138. catch(EDatabaseError &E) {
  139. DBERRORMSG("TVmsIfscManager::LoadSubFromDb", String(E.ClassName()), E.Message, sQry);
  140. return false;
  141. }
  142. catch(Exception &e) {
  143. DBERRORMSG("TVmsIfscManager::LoadSubFromDb", String(e.ClassName()), e.Message, sQry);
  144. return false;
  145. }
  146. }
  147. __finally {
  148. if (pADO) {
  149. pADO->Close();
  150. delete pADO;
  151. }
  152. FRltnLists.UnLock();
  153. }
  154. return true;
  155. }
  156. //---------------------------------------------------------------------------