/************************************************************************** 作者: huangjiangbo 时间: 2024.08.26 描述: 各模组Config数据库操作基类 修改记录: 1、 ***************************************************************************/ #pragma once //#pragma warning(disable:4251) #include "CppSQLite3.h" #include "dt.h" #include #include #include #include namespace ns_db { using namespace std; #ifdef CONFIG_BASE_DLL #define DLL_CONFIG_BASE_API __declspec(dllexport) #else #define DLL_CONFIG_BASE_API #endif typedef struct _CONFIG_BASE_STRUCT { INT iNo_; INT iGroupId; string strName; string strDescribe; INT iUserGrade; INT iChangeFlag; string strValue; string strType; string strDefult; string strLowerLimit; string strUpperLimit; string strUnit; string sIcon; bool bEnable; string strCallFun; }CONFIG_BASE_STRUCT; enum CONFIG_TYPE { CONFIG_LONG = 0, CONFIG_ULONG, CONFIG_INT, CONFIG_DOUBLE, CONFIG_BOOL, CONFIG_STRING }; typedef struct _MODULE_CONFIG_STRUCT { string strName; void* pValue; CONFIG_TYPE config_type; bool bSave; void* pDefault; _MODULE_CONFIG_STRUCT(string strTemp, LONG* pTemp, bool isSaveTemp, LONG* pDef = NULL) { strName = strTemp; pValue = (void*)pTemp; config_type = CONFIG_TYPE::CONFIG_LONG; bSave = isSaveTemp; pDefault = (void*)pDef; } _MODULE_CONFIG_STRUCT(string strTemp, ULONG* pTemp, bool isSaveTemp, ULONG* pDef = NULL) { strName = strTemp; pValue = (void*)pTemp; config_type = CONFIG_TYPE::CONFIG_ULONG; bSave = isSaveTemp; pDefault = (void*)pDef; } _MODULE_CONFIG_STRUCT(string strTemp, int* pTemp, bool isSaveTemp, int* pDef = NULL) { strName = strTemp; pValue = (void*)pTemp; config_type = CONFIG_TYPE::CONFIG_INT; bSave = isSaveTemp; pDefault = (void*)pDef; } _MODULE_CONFIG_STRUCT(string strTemp, unsigned int* pTemp, bool isSaveTemp, unsigned int* pDef = NULL) { strName = strTemp; pValue = (void*)pTemp; config_type = CONFIG_TYPE::CONFIG_INT; bSave = isSaveTemp; pDefault = (void*)pDef; } _MODULE_CONFIG_STRUCT(string strTemp, double* pTemp, bool isSaveTemp, double* pDef = NULL) { strName = strTemp; pValue = (void*)pTemp; config_type = CONFIG_TYPE::CONFIG_DOUBLE; bSave = isSaveTemp; pDefault = (void*)pDef; } _MODULE_CONFIG_STRUCT(string strTemp, bool* pTemp, bool isSaveTemp, bool* pDef = NULL) { strName = strTemp; pValue = (void*)pTemp; config_type = CONFIG_TYPE::CONFIG_BOOL; bSave = isSaveTemp; pDefault = (void*)pDef; } _MODULE_CONFIG_STRUCT(string strTemp, string* pTemp, bool isSaveTemp, string* pDef = NULL) { strName = strTemp; pValue = (void*)pTemp; config_type = CONFIG_TYPE::CONFIG_STRING; bSave = isSaveTemp; pDefault = (void*)pDef; } }MODULE_CONFIG_STRUCT; class DLL_CONFIG_BASE_API CConfigBase { public: CConfigBase(string sPathFile, CppSQLite3DB* pDB); LONG LoadConfigDB(string strTableName, vector& vecConfig); LONG SaveConfigDB(string strTableName, vector* vecConfig); LONG Read(vector stConfig, const CHAR* key, string& value); LONG Read(vector stConfig, const CHAR* key, CHAR* value, UINT len); LONG Read(vector stConfig, const CHAR* key, LONG* value); LONG Read(vector stConfig, const CHAR* key, ULONG* value); LONG Read(vector stConfig, const CHAR* key, INT* value); LONG Read(vector stConfig, const CHAR* key, DOUBLE* value); LONG Read(vector stConfig, const CHAR* key, bool* value); LONG Write(vector* stConfig, const CHAR* key, const CHAR* value); LONG Write(vector* stConfig, const CHAR* key, string value); LONG Write(vector* stConfig, const CHAR* key, LONG value); LONG Write(vector* stConfig, const CHAR* key, ULONG value); LONG Write(vector* stConfig, const CHAR* key, INT value); LONG Write(vector* stConfig, const CHAR* key, DOUBLE value); LONG Write(vector* stConfig, const CHAR* key, bool value); LONG GetConfigParam(vector stConfig, vector* vecconfig); LONG SetConfigParam(vector* stConfig, vector vecconfig); private: CppSQLite3DB* m_pDB; std::string m_sPathFile = ""; }; }