CConfigBase.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. /**************************************************************************
  2. 作者: huangjiangbo
  3. 时间: 2024.08.26
  4. 描述: 各模组Config数据库操作基类
  5. 修改记录:
  6. 1、
  7. ***************************************************************************/
  8. #pragma once
  9. //#pragma warning(disable:4251)
  10. #include "CppSQLite3.h"
  11. #include "dt.h"
  12. #include <string>
  13. #include <windows.h>
  14. #include <vector>
  15. #include <mutex>
  16. #include "CDataBaseOperate.h"
  17. namespace ns_db
  18. {
  19. using namespace std;
  20. #ifdef CONFIG_BASE_DLL
  21. #define DLL_CONFIG_BASE_API __declspec(dllexport)
  22. #else
  23. #define DLL_CONFIG_BASE_API
  24. #endif
  25. enum SAVE_PARAM_RETURN {SAVE_FAIL = -1,SAVE_OK = 0,NO_SAVE = 1};
  26. typedef struct _CONFIG_BASE_STRUCT
  27. {
  28. INT iNo_;
  29. INT iGroupId = 1;
  30. string strName = "";
  31. string strDescribe = "";
  32. string strDescribe_Eng = "";
  33. INT iUserGrade = 1;
  34. INT iChangeFlag = 1;
  35. string strValue = "";
  36. string strType = "";
  37. string strDefult = "";
  38. string strLowerLimit = "-1000000";
  39. string strUpperLimit = "1000000";
  40. string strUnit = "";
  41. string strAxisType = "";
  42. string sIcon = "";
  43. bool bEnable = true;
  44. string strCallFun = "";
  45. }CONFIG_BASE_STRUCT;
  46. enum CONFIG_TYPE
  47. {
  48. CONFIG_LONG = 0,
  49. CONFIG_ULONG,
  50. CONFIG_INT,
  51. CONFIG_DOUBLE,
  52. CONFIG_BOOL,
  53. CONFIG_STRING
  54. };
  55. typedef struct _MODULE_CONFIG_STRUCT
  56. {
  57. string strName;
  58. void* pValue;
  59. CONFIG_TYPE config_type;
  60. bool bSave;
  61. void* pDefault;
  62. _MODULE_CONFIG_STRUCT(string strTemp, LONG* pTemp, bool isSaveTemp, LONG* pDef = NULL)
  63. {
  64. strName = strTemp;
  65. pValue = (void*)pTemp;
  66. config_type = CONFIG_TYPE::CONFIG_LONG;
  67. bSave = isSaveTemp;
  68. pDefault = (void*)pDef;
  69. }
  70. _MODULE_CONFIG_STRUCT(string strTemp, ULONG* pTemp, bool isSaveTemp, ULONG* pDef = NULL)
  71. {
  72. strName = strTemp;
  73. pValue = (void*)pTemp;
  74. config_type = CONFIG_TYPE::CONFIG_ULONG;
  75. bSave = isSaveTemp;
  76. pDefault = (void*)pDef;
  77. }
  78. _MODULE_CONFIG_STRUCT(string strTemp, int* pTemp, bool isSaveTemp, int* pDef = NULL)
  79. {
  80. strName = strTemp;
  81. pValue = (void*)pTemp;
  82. config_type = CONFIG_TYPE::CONFIG_INT;
  83. bSave = isSaveTemp;
  84. pDefault = (void*)pDef;
  85. }
  86. _MODULE_CONFIG_STRUCT(string strTemp, unsigned int* pTemp, bool isSaveTemp, unsigned int* pDef = NULL)
  87. {
  88. strName = strTemp;
  89. pValue = (void*)pTemp;
  90. config_type = CONFIG_TYPE::CONFIG_INT;
  91. bSave = isSaveTemp;
  92. pDefault = (void*)pDef;
  93. }
  94. _MODULE_CONFIG_STRUCT(string strTemp, double* pTemp, bool isSaveTemp, double* pDef = NULL)
  95. {
  96. strName = strTemp;
  97. pValue = (void*)pTemp;
  98. config_type = CONFIG_TYPE::CONFIG_DOUBLE;
  99. bSave = isSaveTemp;
  100. pDefault = (void*)pDef;
  101. }
  102. _MODULE_CONFIG_STRUCT(string strTemp, bool* pTemp, bool isSaveTemp, bool* pDef = NULL)
  103. {
  104. strName = strTemp;
  105. pValue = (void*)pTemp;
  106. config_type = CONFIG_TYPE::CONFIG_BOOL;
  107. bSave = isSaveTemp;
  108. pDefault = (void*)pDef;
  109. }
  110. _MODULE_CONFIG_STRUCT(string strTemp, string* pTemp, bool isSaveTemp, string* pDef = NULL)
  111. {
  112. strName = strTemp;
  113. pValue = (void*)pTemp;
  114. config_type = CONFIG_TYPE::CONFIG_STRING;
  115. bSave = isSaveTemp;
  116. pDefault = (void*)pDef;
  117. }
  118. }MODULE_CONFIG_STRUCT;
  119. class DLL_CONFIG_BASE_API CConfigBase
  120. {
  121. public:
  122. CConfigBase(string sPathFile,string sTableName, CppSQLite3DB* pDB);
  123. LONG LoadConfigDB(string strTableName);
  124. //LONG LoadConfigDB(string strTableName, vector<CONFIG_BASE_STRUCT>& vecConfig);
  125. //LONG SaveConfigDB(string strTableName, vector<CONFIG_BASE_STRUCT>* vecConfig);
  126. LONG SaveConfigDB(string strTableName);
  127. private:
  128. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, string& value);
  129. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, CHAR* value, UINT len);
  130. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, LONG* value);
  131. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, ULONG* value);
  132. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, INT* value);
  133. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, DOUBLE* value);
  134. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, bool* value);
  135. SAVE_PARAM_RETURN Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, const CHAR* value);
  136. SAVE_PARAM_RETURN Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, string value);
  137. SAVE_PARAM_RETURN Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, LONG value);
  138. SAVE_PARAM_RETURN Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, ULONG value);
  139. SAVE_PARAM_RETURN Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, INT value);
  140. SAVE_PARAM_RETURN Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, DOUBLE value);
  141. SAVE_PARAM_RETURN Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, bool value);
  142. LONG Append(vector<CONFIG_BASE_STRUCT>* stConfig, MODULE_CONFIG_STRUCT config);
  143. public:
  144. //在ConfigBase 中查找 ModuleConfig 中需要的数据
  145. //LONG GetConfigParam(vector<CONFIG_BASE_STRUCT> stBaseConfig, vector<MODULE_CONFIG_STRUCT>* vecconfig);
  146. LONG GetConfigParam(vector<MODULE_CONFIG_STRUCT>* vecconfig);
  147. LONG GetConfigParam(vector<CONFIG_BASE_STRUCT>& vecconfig);
  148. //将ModuleConfig的数据设置到ConfigBase中
  149. //LONG SetConfigParam(vector<CONFIG_BASE_STRUCT>* stBaseConfig, vector<MODULE_CONFIG_STRUCT> vecconfig);
  150. SAVE_PARAM_RETURN SetConfigParam(vector<MODULE_CONFIG_STRUCT> vecconfig);
  151. SAVE_PARAM_RETURN SetConfigParam(vector<CONFIG_BASE_STRUCT> vecconfig);
  152. private:
  153. CppSQLite3DB* m_pDB;
  154. std::string m_sPathFile = "";
  155. std::string m_sTableName = "";
  156. std::vector<CONFIG_BASE_STRUCT> m_vecBaseConfig;
  157. };
  158. }