DBStoreFile.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #include "stdafx.h"
  2. #include "DBStoreFile.h"
  3. #include "DBStoreBase.h"
  4. namespace OTSSQLITE
  5. {
  6. CString CDBStoreFile::GetFileName()
  7. {
  8. ASSERT(m_datastorePtr);
  9. if (!m_datastorePtr)
  10. {
  11. return _T("");
  12. }
  13. return m_datastorePtr->GetFileName();
  14. }
  15. CDBStoreBasePtr CDBStoreFile::GetDatastore()
  16. {
  17. if (!m_datastorePtr)
  18. {
  19. m_datastorePtr = CreateNewSQLiteStore();
  20. }
  21. ASSERT(m_datastorePtr);
  22. return m_datastorePtr;
  23. }
  24. CGenInfoDBPtr CDBStoreFile::GetGeneralInfoDB()
  25. {
  26. if (!m_generalInfoTable)
  27. {
  28. auto datastorePtr = GetDatastore();
  29. if (datastorePtr)
  30. {
  31. m_generalInfoTable.reset(new CGenInfoDB(datastorePtr));
  32. }
  33. }
  34. ASSERT(m_generalInfoTable);
  35. return m_generalInfoTable;
  36. }
  37. CString CDBStoreFile::GetFileVersion()
  38. {
  39. auto generalInfoTable = GetGeneralInfoDB();
  40. if (generalInfoTable && generalInfoTable->IsDBExist())
  41. {
  42. return generalInfoTable->GetFileVersion();
  43. }
  44. return _T("");
  45. }
  46. BOOL CDBStoreFile::Open(LPCTSTR a_sFileName, const BOOL a_bForce /*= TRUE*/)
  47. {
  48. Close();
  49. auto datastorePtr = GetDatastore();
  50. return datastorePtr->Open(a_sFileName, a_bForce);
  51. }
  52. BOOL CDBStoreFile::Create(LPCTSTR a_sFileName, const BOOL a_bOverwrite /*= FALSE*/)
  53. {
  54. Close();
  55. auto datastorePtr = GetDatastore();
  56. if (datastorePtr->Create(a_sFileName, a_bOverwrite))
  57. {
  58. return InitFile();
  59. }
  60. ASSERT(FALSE);
  61. return FALSE;
  62. }
  63. BOOL CDBStoreFile::IsOpened()
  64. {
  65. if (m_datastorePtr)
  66. {
  67. return m_datastorePtr->IsOpened();
  68. }
  69. return FALSE;
  70. }
  71. BOOL CDBStoreFile::InitFile()
  72. {
  73. auto generalInfoTable = GetGeneralInfoDB();
  74. ASSERT(generalInfoTable);
  75. if (!generalInfoTable)
  76. {
  77. return FALSE;
  78. }
  79. return generalInfoTable->Init();
  80. }
  81. }