123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #pragma once
- #include "DBStoreBase.h"
- #include "CppSQLite3U.h"
- #include <wtypes.h>
- #include <vector>
- #include "DBQueryBase.h"
- #include <wtypes.h>
- namespace OTSSQLITE
- {
- class CDBStoreFile;
- class CSQLiteStore : public CDBStoreBase
- {
- public:
- CSQLiteStore();
- ~CSQLiteStore();
- //virtual CDBStoreFile* GetDatastoreFile() override { return m_pDatastoreFile; }
- // Get the file name.
- virtual CString GetFileName() override{ return m_sDatastorePathName; }
- virtual BOOL Open(LPCTSTR a_sFileName, const BOOL a_bForce = TRUE)override ;
- virtual BOOL Create(LPCTSTR a_sFileName, const BOOL a_bOverwrite = FALSE)override ;
- virtual BOOL Save(LPCTSTR a_sFileName, const BOOL a_bOverwrite = FALSE) override;
- virtual BOOL IsOpened() override { return GetDBPtr()->isOpened() ? TRUE : FALSE; }
- virtual std::vector<CString> GetTableList() override;
- virtual BOOL IsTableExists(LPCTSTR a_sTableName) override;
- virtual CDBQueryBasePtr QueryByTableName(LPCTSTR a_sTableName, LPCTSTR a_sOrderColumnName = nullptr) override;
- virtual CDBQueryBasePtr QueryByCommand(LPCTSTR a_sQueryString) override;
- virtual BOOL DeleteTable(LPCTSTR a_sTableName) override;
- virtual BOOL RunCommand(LPCTSTR a_sCommandString, const BOOL a_bIgnoreExist = FALSE) override;
-
- BOOL InsertBlobData(CString sqlStr, const DWORD * xrayData);
- virtual BOOL Commit() override;
- virtual BOOL BeginTransaction() override;
- virtual BOOL CloseSynchronous() override;
- virtual BOOL CommitTransaction() override;
- virtual long GetLastRowId(LPCTSTR a_sTableName = nullptr) override;
- virtual void Close() ;
- virtual BOOL InsertBlobData(char* szSql, const void* pBlobData, int iBlobDataLen) override;
- static CString GetExceptionErrorString(CppSQLite3Exception& a_ex);
- CppSQLite3DBPtr GetDBPtr()
- {
- if (!m_dbPtr)
- {
- m_dbPtr.reset(new CppSQLite3DB());
- }
- return m_dbPtr;
- }
- protected:
- BOOL OpenOrCreate(LPCTSTR a_sFileName);
- protected:
- CString m_sDatastorePathName;
- //CDBStoreFile* m_pDatastoreFile;
- CppSQLite3DBPtr m_dbPtr;
- BOOL Exists(LPCTSTR a_sPath)
- {
- return ::PathFileExists(a_sPath) == TRUE;
- }
- BOOL SetReadOnly(LPCTSTR a_sPath, BOOL a_bReadOnly)
- {
- DWORD flags = GetFileAttributes(a_sPath);
- if (a_bReadOnly)
- {
- flags |= FILE_ATTRIBUTE_READONLY;
- }
- else
- {
- flags &= ~FILE_ATTRIBUTE_READONLY;
- }
- return SetFileAttributes(a_sPath, flags) != 0;
- }
- BOOL DeleteAFile(LPCTSTR a_sFileName)
- {
- if (!Exists(a_sFileName))
- {
- return TRUE;
- }
- if (!SetReadOnly(a_sFileName, FALSE))
- {
- return FALSE;
- }
- if (!::DeleteFile(a_sFileName))
- {
- return FALSE;
- }
- return TRUE;
- }
- };
- typedef std::shared_ptr<CSQLiteStore> CSQLiteStorePtr;
- }
|