#pragma once #include #include "CommonDataPublic.h" #include //#include #include #include using namespace std; //using namespace DBPlatformSpace; namespace DBPlatformSpace { class Mapper; class InstanceDataManager; #define COMMIT_T_IMMEDIATELY 0 #define COMMIT_T_GROUP 1 #define DAO_T_BASE 0 #define DAO_T_TOTAL 1 #define DAO_T_SUBDB 2 #define DAO_T_BASEMETA 3 #define DAO_T_DPS 4 ///所有DAO的基类 class DAO { public: int _ID; /// returnMsgToVId(string rMsg); ODI static ResultMsg CreateInstancePtr(string daoName, DAO*& pdao); // [9/13/2023 wwu] ///DAO数据转为map ///@param mapdao 转换后的map数据 virtual ODI ResultMsg toMapData(map& mapdao); ///将map转换为DAO数据 ///@param mapdao 转换的map数据源 virtual ODI ResultMsg transfromMapData(map& mapdao, DAO* &pResultDao); ///返回当前对象的类名 /// note: 真实类名,即当基类指针指向子类时,返回子类名称 virtual ODI string GetDAOClassName(); //------------------ }; ////////////////////////////////////////////////////////////////////////// ///(数据平台内部用)所有工程公用信息类 class totalDAO :public DAO { public: ODI totalDAO(void); ODI ~totalDAO(void); //// 拷贝构造函数 //ODI totalDAO(const totalDAO& C); //ODI const totalDAO& operator=(const totalDAO& refdao); virtual ODI InstanceDataManager* getIDM() ; }; ////////////////////////////////////////////////////////////////////////// ///(数据平台内部用)工程自有信息类 ///@note 继承于该类的数据类,在存取接口前,需要执行 DBPlatform::SetCurrentProject(int prjectId) 设置当前工程ID。 class subDBDAO :public DAO { public: /// //int _taskID; ///<任务ID (内部用) ODI subDBDAO(void); ODI ~subDBDAO(void); //// 拷贝构造函数 //ODI subDBDAO(const subDBDAO& C); //ODI const subDBDAO& operator=(const subDBDAO& refdao); //virtual ODI int save(); virtual ODI InstanceDataManager* getIDM(); }; ////////////////////////////////////////////////////////////////////////// ///(数据平台内部用)数据字典类 class dataDictionaryDAO :public DAO { public: ODI dataDictionaryDAO(void); ODI ~dataDictionaryDAO(void); virtual ODI InstanceDataManager* getIDM(); }; struct IOrderClause; ///(数据平台暂时内部用) class DAOFinder { public: ODI ResultMsg findByID(string daoName, int id, DAO* &pdaofind); ODI ResultMsg findAll(string daoName, list& pdaolist, IOrderClause * pOderbyClause = NULL); ODI ResultMsg findByOneAttr(string daoName, string attrName, string operation, string attrValue, list& pdaolist, IOrderClause* pOderbyClause = NULL); ODI ResultMsg findByManyAndAttr( string daoName, vector v_attrName, vector v_operation, vector v_attrValue, list& pdaolist, IOrderClause* pOderbyClause = NULL); ODI ResultMsg findByManyOrAttr(string daoName, vector v_attrName, vector v_operation, vector v_attrValue, list& pdaolist, IOrderClause* pOderbyClause = NULL); }; class SectionChildDAO : public subDBDAO { public: int _sectionID; ///<剖面id virtual ODI ResultMsg delAllBySectionID(int sectionId, int commitType = COMMIT_T_IMMEDIATELY); SectionChildDAO(); }; //class TransBulkheadChildDAO : public subDBDAO //{ //public: // int _sectionID; ///<剖面id // ResultMsg delAllByTransBulkheadID(int transBulkheadId, int commitType = COMMIT_T_IMMEDIATELY); //}; }