#pragma once #include "DBBase.h" #include "PosXray.h" namespace OTSSQLITE { using namespace OTSDATA; //using namespace OTSSQLITE; class __declspec(dllexport) CPosXrayInfoDB { public: CPosXrayInfoDB(CDBStoreBasePtr a_datastore); virtual ~CPosXrayInfoDB(void); CPosXrayInfoList GetXrayInfoListByFieldId(const long a_nFieldId); CPosXrayInfoList & GetXrayInfoList(const BOOL a_bForce, int fldId); BOOL SaveXrayInfoList(const CPosXraysList& a_xrayPointList); BOOL SaveXrayInfoList(const CPosXrayInfoList& a_xrayPointInfoList); BOOL DeleteXrayPointInfoListByFieldId(const long a_nFieldId); 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 ReadXrayPointInfoList(); CPosXrayInfoList ReadXrayPointInfoListByQuery(CDBQueryBasePtr a_query); CPosXrayInfoPtr ReadXrayPointInfo(CDBQueryBasePtr a_query); CDBQueryBasePtr GetQueryByFieldId(const long a_nFieldId); protected: CDBTableBasePtr m_tableInfo; CPosXrayInfoList m_listPosXrayInfo; private: CDBBasePtr myDB; }; typedef std::shared_ptr __declspec(dllexport) CPosXrayInfoDBPtr; }