CDSDatabaseF.cpp 3.6 KB

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