#pragma once #include "DBBase.h" #include "PosXray.h" namespace OTSSQLITE { using namespace OTSDATA; using namespace OTSSQLITE; class __declspec(dllexport) CXRayDataDB : public CDBBase { 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() override; virtual BOOL Init(const BOOL a_bClean = FALSE) override; virtual BOOL CreateTable(const BOOL a_bForce = FALSE) override; virtual BOOL DeleteTable() override; virtual BOOL RemoveAllRows() override; virtual BOOL IsDBExist() override; virtual CDBStoreBasePtr GetDatastore() override; virtual CDBQueryBasePtr GetTableQuery(LPCTSTR a_sOrderColumnName = nullptr) override; 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; }