CDSDatabaseF.cpp 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSDatabaseF.h"
  4. #include "ITS_OPLibF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. TItsDatabase::TItsDatabase()
  8. {
  9. FCompleted = false;
  10. }
  11. //---------------------------------------------------------------------------
  12. void TItsDatabase::Clear()
  13. {
  14. }
  15. //---------------------------------------------------------------------------
  16. TItsDatabase::~TItsDatabase()
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20. //---------------------------------------------------------------------------
  21. TItsDatabaseManager *ItsDatabaseManager = NULL;
  22. //---------------------------------------------------------------------------
  23. /*
  24. * Database Manager
  25. */
  26. TItsDatabaseManager::TItsDatabaseManager()
  27. {
  28. }
  29. //---------------------------------------------------------------------------
  30. TItsDatabaseManager::~TItsDatabaseManager()
  31. {
  32. FLists.RemoveAll();
  33. }
  34. //---------------------------------------------------------------------------
  35. bool TItsDatabaseManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  36. {
  37. String sQry;
  38. TADOQuery *pADO = NULL;
  39. sQry = "SELECT TABLESPACE_NAME, TOTAL_MB, USED_MB, FREE_MB, USED_PERCENT \r\n"
  40. " FROM VW_TABLESPACE_USAGE \r\n"
  41. " ORDER BY TABLESPACE_NAME \r\n";
  42. FLists.Lock();
  43. try
  44. {
  45. //FLists.RemoveAll();
  46. FOR_STL(TItsDatabase*, pTmp, FLists)
  47. {
  48. pTmp->Completed = false;
  49. }
  50. try
  51. {
  52. pADO = new TADOQuery(NULL);
  53. pADO->Close();
  54. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  55. pADO->SQL->Clear();
  56. pADO->SQL->Text = sQry;
  57. pADO->Prepared = true;
  58. pADO->Open();
  59. for( ; !pADO->Eof; pADO->Next())
  60. {
  61. String TABLESPACE_NAME = pADO->FieldByName("TABLESPACE_NAME")->AsString;
  62. TItsDatabase *pObj = FLists.Find(TABLESPACE_NAME);
  63. if (!pObj)
  64. {
  65. pObj = new TItsDatabase();
  66. pObj->TABLESPACE_NAME = TABLESPACE_NAME;
  67. FLists.Push(pObj->TABLESPACE_NAME, pObj);
  68. }
  69. pObj->TOTAL_MB = pADO->FieldByName("TOTAL_MB")->AsInteger;
  70. pObj->USED_MB = pADO->FieldByName("USED_MB")->AsInteger;
  71. pObj->FREE_MB = pADO->FieldByName("FREE_MB")->AsInteger;
  72. pObj->USED_PERCENT = pADO->FieldByName("USED_PERCENT")->AsInteger;
  73. pObj->Completed = true;
  74. }
  75. }
  76. catch(EDatabaseError &E)
  77. {
  78. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  79. DBERRORMSG("TItsDatabaseManager::LoadFromDb", String(E.ClassName()), E.Message, sQry);
  80. throw Exception(String(E.ClassName()) + E.Message);
  81. }
  82. catch(Exception &e)
  83. {
  84. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  85. DBERRORMSG("TItsDatabaseManager::LoadFromDb", String(e.ClassName()), e.Message, sQry);
  86. throw Exception(String(e.ClassName()) + e.Message);
  87. }
  88. }
  89. __finally
  90. {
  91. if (pADO)
  92. {
  93. pADO->Close();
  94. delete pADO;
  95. }
  96. FLists.UnLock();
  97. }
  98. return true;
  99. }
  100. //---------------------------------------------------------------------------