CConfigBase.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  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. namespace ns_db
  17. {
  18. using namespace std;
  19. #ifdef CONFIG_BASE_DLL
  20. #define DLL_CONFIG_BASE_API __declspec(dllexport)
  21. #else
  22. #define DLL_CONFIG_BASE_API
  23. #endif
  24. typedef struct _CONFIG_BASE_STRUCT
  25. {
  26. INT iNo_;
  27. INT iGroupId;
  28. string strName;
  29. string strDescribe;
  30. INT iUserGrade;
  31. INT iChangeFlag;
  32. string strValue;
  33. string strType;
  34. string strDefult;
  35. string strLowerLimit;
  36. string strUpperLimit;
  37. string strUnit;
  38. string sIcon;
  39. bool bEnable;
  40. string strCallFun;
  41. }CONFIG_BASE_STRUCT;
  42. enum CONFIG_TYPE
  43. {
  44. CONFIG_LONG = 0,
  45. CONFIG_ULONG,
  46. CONFIG_INT,
  47. CONFIG_DOUBLE,
  48. CONFIG_BOOL,
  49. CONFIG_STRING
  50. };
  51. typedef struct _MODULE_CONFIG_STRUCT
  52. {
  53. string strName;
  54. void* pValue;
  55. CONFIG_TYPE config_type;
  56. bool bSave;
  57. void* pDefault;
  58. _MODULE_CONFIG_STRUCT(string strTemp, LONG* pTemp, bool isSaveTemp, LONG* pDef = NULL)
  59. {
  60. strName = strTemp;
  61. pValue = (void*)pTemp;
  62. config_type = CONFIG_TYPE::CONFIG_LONG;
  63. bSave = isSaveTemp;
  64. pDefault = (void*)pDef;
  65. }
  66. _MODULE_CONFIG_STRUCT(string strTemp, ULONG* pTemp, bool isSaveTemp, ULONG* pDef = NULL)
  67. {
  68. strName = strTemp;
  69. pValue = (void*)pTemp;
  70. config_type = CONFIG_TYPE::CONFIG_ULONG;
  71. bSave = isSaveTemp;
  72. pDefault = (void*)pDef;
  73. }
  74. _MODULE_CONFIG_STRUCT(string strTemp, int* pTemp, bool isSaveTemp, int* pDef = NULL)
  75. {
  76. strName = strTemp;
  77. pValue = (void*)pTemp;
  78. config_type = CONFIG_TYPE::CONFIG_INT;
  79. bSave = isSaveTemp;
  80. pDefault = (void*)pDef;
  81. }
  82. _MODULE_CONFIG_STRUCT(string strTemp, unsigned int* pTemp, bool isSaveTemp, unsigned int* pDef = NULL)
  83. {
  84. strName = strTemp;
  85. pValue = (void*)pTemp;
  86. config_type = CONFIG_TYPE::CONFIG_INT;
  87. bSave = isSaveTemp;
  88. pDefault = (void*)pDef;
  89. }
  90. _MODULE_CONFIG_STRUCT(string strTemp, double* pTemp, bool isSaveTemp, double* pDef = NULL)
  91. {
  92. strName = strTemp;
  93. pValue = (void*)pTemp;
  94. config_type = CONFIG_TYPE::CONFIG_DOUBLE;
  95. bSave = isSaveTemp;
  96. pDefault = (void*)pDef;
  97. }
  98. _MODULE_CONFIG_STRUCT(string strTemp, bool* pTemp, bool isSaveTemp, bool* pDef = NULL)
  99. {
  100. strName = strTemp;
  101. pValue = (void*)pTemp;
  102. config_type = CONFIG_TYPE::CONFIG_BOOL;
  103. bSave = isSaveTemp;
  104. pDefault = (void*)pDef;
  105. }
  106. _MODULE_CONFIG_STRUCT(string strTemp, string* pTemp, bool isSaveTemp, string* pDef = NULL)
  107. {
  108. strName = strTemp;
  109. pValue = (void*)pTemp;
  110. config_type = CONFIG_TYPE::CONFIG_STRING;
  111. bSave = isSaveTemp;
  112. pDefault = (void*)pDef;
  113. }
  114. }MODULE_CONFIG_STRUCT;
  115. class DLL_CONFIG_BASE_API CConfigBase
  116. {
  117. public:
  118. CConfigBase(string sPathFile, CppSQLite3DB* pDB);
  119. LONG LoadConfigDB(string strTableName, vector<CONFIG_BASE_STRUCT>& vecConfig);
  120. LONG SaveConfigDB(string strTableName, vector<CONFIG_BASE_STRUCT>* vecConfig);
  121. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, string& value);
  122. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, CHAR* value, UINT len);
  123. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, LONG* value);
  124. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, ULONG* value);
  125. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, INT* value);
  126. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, DOUBLE* value);
  127. LONG Read(vector<CONFIG_BASE_STRUCT> stConfig, const CHAR* key, bool* value);
  128. LONG Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, const CHAR* value);
  129. LONG Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, string value);
  130. LONG Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, LONG value);
  131. LONG Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, ULONG value);
  132. LONG Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, INT value);
  133. LONG Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, DOUBLE value);
  134. LONG Write(vector<CONFIG_BASE_STRUCT>* stConfig, const CHAR* key, bool value);
  135. LONG GetConfigParam(vector<CONFIG_BASE_STRUCT> stConfig, vector<MODULE_CONFIG_STRUCT>* vecconfig);
  136. LONG SetConfigParam(vector<CONFIG_BASE_STRUCT>* stConfig, vector<MODULE_CONFIG_STRUCT> vecconfig);
  137. private:
  138. CppSQLite3DB* m_pDB;
  139. std::string m_sPathFile = "";
  140. };
  141. }