#pragma once #include "DBBase.h" #include "PosXray.h" namespace OTSSQLITE { using namespace OTSDATA; //using namespace OTSSQLITE; class __declspec(dllexport) CPosXrayInfoDB : public CDBBase { 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() 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 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; }