#pragma once #include "DBBase.h" #include "STDItem.h" namespace OTSClassifyEngine { using namespace OTSClassifyEngine; using namespace OTSSQLITE; class CElementRangeDB : public CDBBase { public: CElementRangeDB(CDBStoreBasePtr a_datastore); ~CElementRangeDB(); CElementRangeList GetElementRangeListById(const long a_nIncAId, const long a_nElementSize); CSTDItemsList& GetSTDItemList(const BOOL a_bForce = FALSE); 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 ReadSTDItemList(); CSTDItemsList ReadSTDItemList(CDBQueryBasePtr a_query); CSTDItemPtr ReadSTDItem(CDBQueryBasePtr a_query); CDBQueryBasePtr GetQueryById(const long a_nSTDId, const long a_nElementId, const long a_nElementNum); protected: CDBTableBasePtr m_tableInfo; CElementRangeList m_listElementRange; CSTDItemsList m_listSTDItem; private: CDBBasePtr myDB; }; typedef std::shared_ptr CElementRangeDBPtr; }