167 lines
4.0 KiB
C++
167 lines
4.0 KiB
C++
#pragma once
|
|
#include <iostream>
|
|
#include "CommonDataPublic.h"
|
|
#include <list>
|
|
//#include <string>
|
|
#include <vector>
|
|
#include <map>
|
|
|
|
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; ///<DAO的唯一标识
|
|
string _name; ///<名称
|
|
|
|
int _daoType; ///<(数据平台内部用)
|
|
|
|
ODI DAO();
|
|
virtual ODI ~DAO();
|
|
|
|
|
|
virtual ODI ResultMsg save(int commitType = COMMIT_T_IMMEDIATELY);
|
|
|
|
virtual ODI ResultMsg delself(int commitType = COMMIT_T_IMMEDIATELY);
|
|
|
|
virtual ODI ResultMsg delAll(int commitType = COMMIT_T_IMMEDIATELY);
|
|
|
|
virtual ODI Mapper* createMapper();
|
|
|
|
virtual ODI InstanceDataManager* getIDM();
|
|
|
|
ODI static vector<int> returnMsgToVId(string rMsg);
|
|
|
|
ODI static ResultMsg CreateInstancePtr(string daoName, DAO*& pdao);
|
|
|
|
|
|
// [9/13/2023 wwu]
|
|
///DAO数据转为map<string,string>
|
|
///@param mapdao 转换后的map数据
|
|
virtual ODI ResultMsg toMapData(map<string, string>& mapdao);
|
|
|
|
///将map<string,string>转换为DAO数据
|
|
///@param mapdao 转换的map数据源
|
|
virtual ODI ResultMsg transfromMapData(map<string, string>& 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<DAO*>& pdaolist, IOrderClause * pOderbyClause = NULL);
|
|
|
|
ODI ResultMsg findByOneAttr(string daoName, string attrName, string operation, string attrValue, list<DAO*>& pdaolist, IOrderClause* pOderbyClause = NULL);
|
|
|
|
ODI ResultMsg findByManyAndAttr( string daoName, vector<string> v_attrName, vector<string> v_operation, vector<string> v_attrValue, list<DAO*>& pdaolist, IOrderClause* pOderbyClause = NULL);
|
|
|
|
ODI ResultMsg findByManyOrAttr(string daoName, vector<string> v_attrName, vector<string> v_operation, vector<string> v_attrValue, list<DAO*>& 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);
|
|
//};
|
|
|
|
|
|
}
|