DBStoreFile.cpp 1.7 KB

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