DBManager.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include "pch.h"
  2. #include "DBManager.h"
  3. //ÉèÖÃsqliteÊý¾Ý¿âÎļþµÄ·¾¶
  4. const char *sRoute = "D:\\dms.db";
  5. CDBManager * CDBManager::m_pDb = NULL;
  6. CDBManager::CDBManager()
  7. {
  8. m_pSqlDb = NULL;
  9. if (m_pSqlDb || !(m_pSqlDb = new CppSQLite3DB())) {
  10. return;
  11. }
  12. }
  13. CDBManager::~CDBManager()
  14. {
  15. if (m_pDb != NULL)
  16. {
  17. delete m_pDb;
  18. m_pDb = NULL;
  19. }
  20. if (m_pSqlDb)
  21. {
  22. delete m_pSqlDb;
  23. m_pSqlDb = NULL;
  24. }
  25. }
  26. CDBManager* CDBManager::GetInstance() {
  27. CMutex mux;
  28. if (m_pDb == NULL)
  29. {
  30. mux.Lock();
  31. if (m_pDb == NULL)
  32. {
  33. m_pDb == new CDBManager();
  34. }
  35. mux.Unlock();
  36. }
  37. return m_pDb;
  38. }
  39. BOOL CDBManager::StartQuery(LPCTSTR szSQL)
  40. {
  41. try
  42. {
  43. CppSQLite3Buffer bufSQL;
  44. CppSQLite3Query q = m_pSqlDb->execQuery(bufSQL);
  45. bufSQL.clear();
  46. if (!q.eof())
  47. {
  48. q.finalize();
  49. return TRUE;
  50. }
  51. else
  52. {
  53. q.finalize();
  54. return FALSE;
  55. }
  56. }
  57. catch (CppSQLite3Exception& e)
  58. {
  59. LOG::E(e.errorMessage());
  60. return FALSE;
  61. }
  62. }
  63. BOOL CDBManager::ExecSQL(LPCTSTR szSQL)
  64. {
  65. try
  66. {
  67. m_pSqlDb->open(sRoute);
  68. m_pSqlDb->execDML(szSQL);
  69. m_pSqlDb->close();
  70. }
  71. catch (CppSQLite3Exception& e)
  72. {
  73. LOG::E(e.errorMessage());
  74. return FALSE;
  75. }
  76. return TRUE;
  77. }