#pragma once #include "M_ObjectDAO.h" namespace DBPlatformSpace { class M_NormalColumnDAO; class M_EntityModelDAO; class M_FindByInterfaceDAO; class M_DelByInterfaceDAO; class M_FolderDAO; class M_SceneInfoDAO; /// M_数据类 class M_EntityTableDAO : public M_ObjectDAO { public: //说明:基类里的_name用于保存 “模型标识” int _addVersion; ///<创建版本号 int _countType; ///<数量类型 int _delVersion; ///<删除版本号 string _description; ///<描述 string _displayName; ///<显示名称 string _innerName; ///<内部列名称 int _isDeleted; ///<是否删除 int _type; ///<数据类类型(普通数据类,关系数据类等) int _version; ///<版本号 string _whiteBoxType; ///<白盒测试代码类型 //组件内部用临时变量 int _isBelongToDictionaryModel; ///<是否为数据字典模型的数据类(组件内部用临时变量) ODI M_EntityTableDAO(); virtual ODI ~M_EntityTableDAO(); virtual ODI ResultMsg save(int commitType = COMMIT_T_IMMEDIATELY); // [6/25/2022 wwu] // /// 此自删除接口,会将下属的数据模型一同删除 // 替换delself() /*virtual ODI ResultMsg delself(int commitType = COMMIT_T_IMMEDIATELY);*/ ///@para out vv_resultDeleted 删除结果[数据类型,数据ID] 数据类型在 M_ObjectDAO 头文件中有预定义 // [7/19/2022 wwu] ///@para out strResultIDDeleted 删除结果: 数据类型数值1,数据ID1#数据类型数值2,数据ID2#...... // [7/19/2022 wwu] ///@note #define MOBJECT_CLASS_T_ENTITYTABLE 1 ///@ #define MOBJECT_CLASS_T_NORMALCOLUMN 2 virtual ODI ResultMsg delFromEntityModel(M_EntityModelDAO* pModleOwner,string &strResultIDDeleted); // vector> &vv_resultDeleted ///与数据属性的关系 ODI ResultMsg addNormalColumnDAO(M_EntityModelDAO * pModleOwner, M_NormalColumnDAO* pNorColumn, int commitType = COMMIT_T_IMMEDIATELY);//注意保存前,将pNorColumn的addVersion设置为当前数据模型的Version //ODI ResultMsg removeNormalColumnDAO(M_NormalColumnDAO* pNorColumn, int commitType = COMMIT_T_IMMEDIATELY); ODI ResultMsg getNormalColumnDAOList(M_EntityModelDAO* pModleOwner, list< M_NormalColumnDAO*>& emlist); // [6/26/2022 wwu] ///与数据模型的关系 ODI ResultMsg getEntityModelOwners(list< M_EntityModelDAO *> &modelOwnerList); ODI ResultMsg getMaxVersionEntityModelOwner(M_EntityModelDAO*& pMmodelOwner); // [6/25/2022 wwu] /// 数据字典类相关操作 /// [9/5/2023 wwu] 分隔符由原来的逗号改为“@#@” ODI bool isBelongToDictionaryModel(); ODI ResultMsg importData(list columnList, list valueList); //string 是该类所有值的 @#@分隔字符串 ODI ResultMsg exportData(list& columnList, list &valueList);//string 是该类所有值的 @#@分隔字符串 // [9/5/2023 wwu] /// 当前工作文件CurrentWorkDB的数据表数据 /// 注:删除的不是M_EntityTableDAO本身表中数据,是工作文件中的实际业务数据 ODI ResultMsg getData(list& columnList, list& valueList); ODI ResultMsg saveData(list columnList, list valueList); ODI ResultMsg delData(vectoridToDelList); // [9/13/2023 wwu] ODI ResultMsg delAllData(); // [5/31/2024 wwu] ///说明:saveBlobData()执行之前,需要先执行saveData()保存其他非Blob数据 /// char * 直接转换为double*用即可 ODI ResultMsg saveBlobData(M_NormalColumnDAO* pcolBlob,double * pData,int dataSize,int dataId); ODI ResultMsg getBlobData(M_NormalColumnDAO* pcolBlob, int dataId, double* &pData, int &dataSize); // [6/30/2022 wwu] ///与 查询接口 的关系 ODI ResultMsg addFindByInterfaceDAO(M_FindByInterfaceDAO* pFindByI, int commitType = COMMIT_T_IMMEDIATELY);//注意保存前,将pNorColumn的addVersion设置为当前数据模型的Version ODI ResultMsg removeFindByInterfaceDAO(M_FindByInterfaceDAO* pFindByI, int commitType = COMMIT_T_IMMEDIATELY); ODI ResultMsg getFindByInterfaceDAOList(M_EntityModelDAO* pModleOwner, list< M_FindByInterfaceDAO*>& pFindByIlist); ///与 删除接口 的关系 ODI ResultMsg addDelByInterfaceDAO(M_DelByInterfaceDAO* pDelByI, int commitType = COMMIT_T_IMMEDIATELY);//注意保存前,将pNorColumn的addVersion设置为当前数据模型的Version ODI ResultMsg removeDelByInterfaceDAO(M_DelByInterfaceDAO* pDelByI, int commitType = COMMIT_T_IMMEDIATELY); ODI ResultMsg getDelByInterfaceDAOList(M_EntityModelDAO* pModleOwner, list< M_DelByInterfaceDAO*>& pDelByIlist); // [7/3/2022 wwu] // 代码生成 ODI ResultMsg CreateCode(M_EntityModelDAO* pModleOwner, string codeFileFolderPath, list & resultCodeFilesPathList); //说明:只是把粗糙版现有功能迁移过来,FindBy和DelBy还未补充完善进去。后续更新,接口形式不影响。 // [9/13/2023 wwu] ODI static string tableNameToDAOName(string entityTable_innerName); // [7/7/2022 wwu] // 与 数据模块 Folder 的关系 ODI ResultMsg getFolderOwner(M_EntityModelDAO* pModleOwner, list&pFolderOwnerList); // [7/13/2022 wwu] // 关联属性 ODI ResultMsg getRelationInfo(M_EntityModelDAO* pModleOwner, list &nRColList, list &mnRTableList); ODI virtual Mapper* createMapper(); ODI static DAO* createObject(); // [7/20/2022 wwu] ///与数据字典数据的关系 ODI ResultMsg addSceneInfo(M_EntityModelDAO* pModleOwner, M_SceneInfoDAO* pSceneInfo, int commitType = COMMIT_T_IMMEDIATELY); ODI ResultMsg getSceneInfoList(M_EntityModelDAO* pModleOwner, list< M_SceneInfoDAO*>& pSceneInfolist); static ODI ResultMsg FindAll(list & pnewlist); static ODI ResultMsg FindByID(int id, M_EntityTableDAO * &pnewdao); }; }