| 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;}
 |