#pragma once #include "DBBase.h" #include "Element.h" #include "PosXray.h" namespace OTSSQLITE { using namespace OTSDATA; class __declspec(dllexport) CElementChemistryDB : public CDBBase { public: CElementChemistryDB(CDBStoreBasePtr a_datastore); ~CElementChemistryDB(); CElementChemistriesList GetElementChemistryListById(const long a_nXrayId, const long a_nFieldId, const long a_nElementSize); CPosXrayInfoList& GetXrayInfoList(const BOOL a_bForce = FALSE); BOOL SaveElementChemistriesList(const CPosXraysList& a_xrayPointList); BOOL SaveElementChemistriesList(const CPosXrayPtr a_pxrayPoint); BOOL DeleteElementChemistryById(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 ReadXrayPointInfoList(); CPosXrayInfoList ReadXrayPointInfoList(CDBQueryBasePtr a_query); CPosXrayInfoPtr ReadPosXrayInfo(CDBQueryBasePtr a_query); CDBQueryBasePtr GetQueryById(const long a_nXrayId, const long a_nFieldId, const long a_nElementId, const long a_nElementNum); protected: CDBTableBasePtr m_tableInfo; CElementChemistriesList m_listElementChemistry; CPosXrayInfoList m_listPosXrayInfo; private: CDBBasePtr myDB; }; typedef std::shared_ptr __declspec(dllexport) CElementChemistryDBPtr; }