CDSTrafficGradeF.cpp 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSTrafficGradeF.h"
  4. #include "AppGlobalF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. TItsTrafficSubGrade::TItsTrafficSubGrade()
  8. {
  9. TItsTrafficSubGrade("", "");
  10. }
  11. //---------------------------------------------------------------------------
  12. TItsTrafficSubGrade::TItsTrafficSubGrade(String ACode, String ASubCode)
  13. {
  14. SECT_GRAD_CD = ACode;
  15. CMTR_GRAD_CD = ASubCode;
  16. FModified = false;
  17. FCompleted= false;
  18. }
  19. //---------------------------------------------------------------------------
  20. TItsTrafficSubGrade::~TItsTrafficSubGrade()
  21. {
  22. }
  23. //---------------------------------------------------------------------------
  24. TItsTrafficGrade::TItsTrafficGrade()
  25. {
  26. TItsTrafficGrade("");
  27. }
  28. //---------------------------------------------------------------------------
  29. TItsTrafficGrade::TItsTrafficGrade(String ACode)
  30. {
  31. SECT_GRAD_CD = ACode;
  32. FModified = false;
  33. FCompleted= false;
  34. }
  35. //---------------------------------------------------------------------------
  36. TItsTrafficGrade::~TItsTrafficGrade()
  37. {
  38. FSubLists.RemoveAll();
  39. }
  40. //---------------------------------------------------------------------------
  41. //---------------------------------------------------------------------------
  42. TItsTrafficGradeManager *ItsTrafficGradeManager = NULL;
  43. //---------------------------------------------------------------------------
  44. /*
  45. * Link Manager
  46. */
  47. TItsTrafficGradeManager::TItsTrafficGradeManager()
  48. {
  49. }
  50. //---------------------------------------------------------------------------
  51. TItsTrafficGradeManager::~TItsTrafficGradeManager()
  52. {
  53. }
  54. //---------------------------------------------------------------------------
  55. bool TItsTrafficGradeManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  56. {
  57. FLists.RemoveAll();
  58. return (LoadTrafficGrade(ADbConn) && LoadTrafficSubGrade(ADbConn));
  59. }
  60. //---------------------------------------------------------------------------
  61. bool TItsTrafficGradeManager::LoadTrafficGrade(TADOConnection *ADbConn/*=NULL*/)
  62. {
  63. String sQry;
  64. TADOQuery *pADO = NULL;
  65. sQry = "SELECT SECT_GRAD_CD, \r\n"
  66. " SECT_GRAD_NM \r\n"
  67. " FROM TB_SECT_GRAD \r\n";
  68. // " ORDER BY SECT_GRAD_CD \r\n";
  69. try
  70. {
  71. FLists.Lock();
  72. try
  73. {
  74. pADO = new TADOQuery(NULL);
  75. pADO->Close();
  76. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  77. pADO->SQL->Clear();
  78. pADO->SQL->Text = sQry;
  79. pADO->Prepared = true;
  80. pADO->Open();
  81. //int nRows = pADO->RecordCount;
  82. for( ; !pADO->Eof; pADO->Next())
  83. {
  84. TItsTrafficGrade *pCode = new TItsTrafficGrade();
  85. pCode->SECT_GRAD_CD = pADO->FieldByName("SECT_GRAD_CD")->AsString; //'备埃 殿鞭 内靛';
  86. pCode->SECT_GRAD_NM = pADO->FieldByName("SECT_GRAD_NM")->AsString; //'备埃 殿鞭 疙';
  87. FLists.Push(pCode->SECT_GRAD_CD, pCode);
  88. pCode->Completed = true;
  89. }
  90. }
  91. catch(EDatabaseError &E)
  92. {
  93. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  94. DBERRORMSG("TItsTrafficGradeManager::LoadTrafficGrade", String(E.ClassName()), E.Message, sQry);
  95. throw Exception(String(E.ClassName()) + E.Message);
  96. }
  97. catch(Exception &exception)
  98. {
  99. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  100. DBERRORMSG("TItsTrafficGradeManager::LoadTrafficGrade", String(exception.ClassName()), exception.Message, sQry);
  101. throw Exception(String(exception.ClassName()) + exception.Message);
  102. }
  103. }
  104. __finally
  105. {
  106. if (pADO)
  107. {
  108. pADO->Close();
  109. delete pADO;
  110. }
  111. FLists.UnLock();
  112. }
  113. return true;
  114. }
  115. //---------------------------------------------------------------------------
  116. bool TItsTrafficGradeManager::LoadTrafficSubGrade(TADOConnection *ADbConn/*=NULL*/)
  117. {
  118. String sQry;
  119. TADOQuery *pADO = NULL;
  120. sQry = "SELECT A.SECT_GRAD_CD, \r\n"
  121. " CMTR_GRAD_CD , \r\n"
  122. " LWST_TRVL_SPED, \r\n"
  123. " HGHS_TRVL_SPED, \r\n"
  124. " CNGS_GRAD_YN \r\n"
  125. " FROM TB_SECT_GRAD_STUP A, \r\n"
  126. " TB_SECT_GRAD B \r\n"
  127. " WHERE A.SECT_GRAD_CD = B.SECT_GRAD_CD \r\n";
  128. // " ORDER BY SECT_GRAD_CD, CMTR_GRAD_CD \r\n";
  129. try
  130. {
  131. ItsTrafficGradeManager->FLists.Lock();
  132. TItsTrafficGrade *pCode = NULL;
  133. try
  134. {
  135. pADO = new TADOQuery(NULL);
  136. pADO->Close();
  137. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  138. pADO->SQL->Clear();
  139. pADO->SQL->Text = sQry;
  140. pADO->Prepared = true;
  141. pADO->Open();
  142. //int nRows = pADO->RecordCount;
  143. for( ; !pADO->Eof; pADO->Next())
  144. {
  145. String sGradCd = pADO->FieldByName("SECT_GRAD_CD")->AsString;
  146. pCode = ItsTrafficGradeManager->FLists.Find(sGradCd);
  147. if (!pCode) continue;
  148. TItsTrafficSubGrade *pSubCode = new TItsTrafficSubGrade();
  149. pSubCode->SECT_GRAD_CD = sGradCd;
  150. pSubCode->CMTR_GRAD_CD = pADO->FieldByName("CMTR_GRAD_CD")->AsString;
  151. pSubCode->LWST_TRVL_SPED = pADO->FieldByName("LWST_TRVL_SPED")->AsInteger;
  152. pSubCode->HGHS_TRVL_SPED = pADO->FieldByName("HGHS_TRVL_SPED")->AsInteger;
  153. pSubCode->CNGS_GRAD_YN = pADO->FieldByName("CNGS_GRAD_YN")->AsString;
  154. pCode->FSubLists.Push(pSubCode->CMTR_GRAD_CD, pSubCode);
  155. pSubCode->Completed = true;
  156. }
  157. }
  158. catch(EDatabaseError &E)
  159. {
  160. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  161. DBERRORMSG("TItsTrafficGradeManager::LoadTrafficSubGrade", String(E.ClassName()), E.Message, sQry);
  162. throw Exception(String(E.ClassName()) + E.Message);
  163. }
  164. catch(Exception &exception)
  165. {
  166. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  167. DBERRORMSG("TItsTrafficGradeManager::LoadTrafficSubGrade", String(exception.ClassName()), exception.Message, sQry);
  168. throw Exception(String(exception.ClassName()) + exception.Message);
  169. }
  170. }
  171. __finally
  172. {
  173. if (pADO)
  174. {
  175. pADO->Close();
  176. delete pADO;
  177. }
  178. ItsTrafficGradeManager->FLists.UnLock();
  179. }
  180. return true;
  181. }
  182. //---------------------------------------------------------------------------