#pragma once #include "DBBase.h" #include "PosXray.h" namespace OTSSQLITE { using namespace OTSDATA; using namespace OTSSQLITE; class __declspec(dllexport) CXRayDataDB { public: CXRayDataDB(CDBStoreBasePtr a_datastore); ~CXRayDataDB(); CPosXrayPtr GetXRayDataById(const long a_nXrayId, const long a_nFieldId); CPosXraysList& GetXrayList(const BOOL a_bForce = FALSE); BOOL SavePosXrayPtr(const CPosXrayPtr a_pXray); BOOL DeletePosXrayById(const long a_nFieldId, const long a_nXrayId); virtual CDBTableBasePtr GetTableInfo() ; virtual BOOL Init(const BOOL a_bClean = FALSE) ; virtual BOOL CreateTable(const BOOL a_bForce = FALSE) ; virtual BOOL DeleteTable() ; virtual BOOL RemoveAllRows() ; virtual BOOL IsDBExist() ; virtual CDBStoreBasePtr GetDatastore() ; virtual CDBQueryBasePtr GetTableQuery(LPCTSTR a_sOrderColumnName = nullptr) ; protected: BOOL ReadAllXrayList(); BOOL ReadXrayListFromAQuery(CDBQueryBasePtr a_query, CPosXraysList & a_XrayList); BOOL ReadOnePosXray(CDBQueryBasePtr a_query, CPosXrayPtr & a_xray); CDBQueryBasePtr GetQueryById(const long a_nXrayId, const long a_nFieldId); protected: CDBTableBasePtr m_tableInfo; CPosXraysList m_listPosXray; private: CDBBasePtr myDB; }; typedef std::shared_ptr __declspec(dllexport) CXRayDataDBPtr; }