数据库增加创建账户等功能

This commit is contained in:
luoliangyi 2022-12-09 17:39:01 +08:00
parent 1661442821
commit 12451ce429
6 changed files with 389 additions and 43 deletions

View File

@ -3,7 +3,7 @@
#include "base/HGInc.h" #include "base/HGInc.h"
HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar* host, HGUShort port, HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar* host, HGUShort port,
const HGChar* user, const HGChar* pwd, HGPdtToolDbUserMgr* userMgr) const HGChar* userName, const HGChar* pwd, HGPdtToolDbUserMgr* userMgr)
{ {
if (NULL == userMgr) if (NULL == userMgr)
{ {
@ -11,7 +11,7 @@ HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar* host, HGUShort port,
} }
HGPdtToolDbUserMgrImpl* userMgrImpl = new HGPdtToolDbUserMgrImpl; HGPdtToolDbUserMgrImpl* userMgrImpl = new HGPdtToolDbUserMgrImpl;
HGResult ret = userMgrImpl->Create(host, port, user, pwd); HGResult ret = userMgrImpl->Create(host, port, userName, pwd);
if (HGBASE_ERR_OK != ret) if (HGBASE_ERR_OK != ret)
{ {
delete userMgrImpl; delete userMgrImpl;
@ -40,6 +40,88 @@ HGResult HGAPI HGPdtToolDb_DestroyUserMgr(HGPdtToolDbUserMgr userMgr)
return HGBASE_ERR_OK; return HGBASE_ERR_OK;
} }
HGResult HGAPI HGPdtToolDb_GetUserType(HGPdtToolDbUserMgr userMgr, HGUInt* userType)
{
if (NULL == userMgr)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
return userMgrImpl->GetUserType(userType);
}
HGResult HGAPI HGPdtToolDb_GetUserName(HGPdtToolDbUserMgr userMgr, HGChar* userName, HGUInt maxLen)
{
if (NULL == userMgr)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
return userMgrImpl->GetUserName(userName, maxLen);
}
HGResult HGAPI HGPdtToolDb_GetUserList(HGPdtToolDbUserMgr userMgr, HGChar** userNameList, HGUInt maxLen, HGUInt* count)
{
if (NULL == userMgr)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
return userMgrImpl->GetUserList(userNameList, maxLen, count);
}
HGResult HGAPI HGPdtToolDb_ReleaseUserList(HGChar** userNameList, HGUInt count)
{
return HGPdtToolDbUserMgrImpl::ReleaseUserList(userNameList, count);
}
HGResult HGAPI HGPdtToolDb_CreateUser(HGPdtToolDbUserMgr userMgr, const HGChar* userName, const HGChar* defPwd)
{
if (NULL == userMgr)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
return userMgrImpl->CreateUser(userName, defPwd);
}
HGResult HGAPI HGPdtToolDb_DestroyUser(HGPdtToolDbUserMgr userMgr, const HGChar* userName)
{
if (NULL == userMgr)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
return userMgrImpl->DestroyUser(userName);
}
HGResult HGAPI HGPdtToolDb_SetPassword(HGPdtToolDbUserMgr userMgr, const HGChar* userName, const HGChar* pwd)
{
if (NULL == userMgr)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
return userMgrImpl->SetPassword(userName, pwd);
}
HGResult HGAPI HGPdtToolDb_ModifyPassword(HGPdtToolDbUserMgr userMgr, const HGChar* newPwd)
{
if (NULL == userMgr)
{
return HGBASE_ERR_INVALIDARG;
}
HGPdtToolDbUserMgrImpl* userMgrImpl = (HGPdtToolDbUserMgrImpl*)userMgr;
return userMgrImpl->ModifyPassword(newPwd);
}
HGResult HGAPI HGPdtToolDb_Export(HGPdtToolDbUserMgr userMgr, const HGChar* xlsPath) HGResult HGAPI HGPdtToolDb_Export(HGPdtToolDbUserMgr userMgr, const HGChar* xlsPath)
{ {
if (NULL == userMgr) if (NULL == userMgr)

View File

@ -4,6 +4,14 @@ EXPORTS
HGPdtToolDb_CreateUserMgr HGPdtToolDb_CreateUserMgr
HGPdtToolDb_DestroyUserMgr HGPdtToolDb_DestroyUserMgr
HGPdtToolDb_GetUserType
HGPdtToolDb_GetUserName
HGPdtToolDb_GetUserList
HGPdtToolDb_ReleaseUserList
HGPdtToolDb_CreateUser
HGPdtToolDb_DestroyUser
HGPdtToolDb_SetPassword
HGPdtToolDb_ModifyPassword
HGPdtToolDb_Export HGPdtToolDb_Export
HGPdtToolDb_GetUserConfig HGPdtToolDb_GetUserConfig
HGPdtToolDb_SetUserConfig HGPdtToolDb_SetUserConfig

View File

@ -4,6 +4,11 @@
#include "base/HGDef.h" #include "base/HGDef.h"
#include "base/HGBaseErr.h" #include "base/HGBaseErr.h"
/* 管理员账户 */
#define HGPDTTOOLDB_USERTYPE_ROOT 1L
/* 普通账户 */
#define HGPDTTOOLDB_USERTYPE_NORMAL 2L
/* 拨码开关校验 */ /* 拨码开关校验 */
#define HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH 1L #define HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH 1L
/* 检查船型开关功能 */ /* 检查船型开关功能 */
@ -91,12 +96,36 @@ HG_DECLARE_HANDLE(HGPdtToolDbDevice);
/* 登录 */ /* 登录 */
HGEXPORT HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar *host, HGUShort port, HGEXPORT HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar *host, HGUShort port,
const HGChar *user, const HGChar *pwd, HGPdtToolDbUserMgr *userMgr); const HGChar *userName, const HGChar *pwd, HGPdtToolDbUserMgr *userMgr);
/* 登出 */ /* 登出 */
HGEXPORT HGResult HGAPI HGPdtToolDb_DestroyUserMgr(HGPdtToolDbUserMgr userMgr); HGEXPORT HGResult HGAPI HGPdtToolDb_DestroyUserMgr(HGPdtToolDbUserMgr userMgr);
/* 导出所有设备测试信息到XLS文件 */ /* 获取当前账户类型 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetUserType(HGPdtToolDbUserMgr userMgr, HGUInt *userType);
/* 获取当前账户名称 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetUserName(HGPdtToolDbUserMgr userMgr, HGChar *userName, HGUInt maxLen);
/* 获取账户列表,需要管理员账户才能调用 */
HGEXPORT HGResult HGAPI HGPdtToolDb_GetUserList(HGPdtToolDbUserMgr userMgr, HGChar **userNameList, HGUInt maxLen, HGUInt* count);
/* 销毁账户列表 */
HGEXPORT HGResult HGAPI HGPdtToolDb_ReleaseUserList(HGChar **userNameList, HGUInt count);
/* 创建账户,需要管理员账户才能调用 */
HGEXPORT HGResult HGAPI HGPdtToolDb_CreateUser(HGPdtToolDbUserMgr userMgr, const HGChar *userName, const HGChar* defPwd);
/* 销毁账户,需要管理员账户才能调用 */
HGEXPORT HGResult HGAPI HGPdtToolDb_DestroyUser(HGPdtToolDbUserMgr userMgr, const HGChar* userName);
/* 设置账户密码,需要管理员账户才能调用 */
HGEXPORT HGResult HGAPI HGPdtToolDb_SetPassword(HGPdtToolDbUserMgr userMgr, const HGChar* userName, const HGChar* pwd);
/* 修改本账户的密码 */
HGEXPORT HGResult HGAPI HGPdtToolDb_ModifyPassword(HGPdtToolDbUserMgr userMgr, const HGChar* newPwd);
/* 导出所有设备测试信息到XLS文件需要管理员账户才能调用 */
HGEXPORT HGResult HGAPI HGPdtToolDb_Export(HGPdtToolDbUserMgr userMgr, const HGChar *xlsPath); HGEXPORT HGResult HGAPI HGPdtToolDb_Export(HGPdtToolDbUserMgr userMgr, const HGChar *xlsPath);
/* 获取用户配置 */ /* 获取用户配置 */

View File

@ -101,7 +101,7 @@ const HGChar* PRESSURE_INSPECTION_CN[] =
HGPdtToolDbUserMgrImpl::HGPdtToolDbUserMgrImpl() HGPdtToolDbUserMgrImpl::HGPdtToolDbUserMgrImpl()
{ {
m_sql = NULL; m_sql = NULL;
m_user.clear(); m_userName.clear();
m_deviceList.clear(); m_deviceList.clear();
} }
@ -110,7 +110,7 @@ HGPdtToolDbUserMgrImpl::~HGPdtToolDbUserMgrImpl()
} }
HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const HGChar* user, const HGChar* pwd) HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const HGChar* userName, const HGChar* pwd)
{ {
if (NULL != m_sql) if (NULL != m_sql)
{ {
@ -123,35 +123,13 @@ HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const
return HGBASE_ERR_FAIL; return HGBASE_ERR_FAIL;
} }
if (NULL == mysql_real_connect(sql, host, user, pwd, NULL, port, NULL, 0)) if (NULL == mysql_real_connect(sql, host, userName, pwd, "huago_production_tool", port, NULL, 0))
{ {
mysql_close(sql); mysql_close(sql);
return HGBASE_ERR_FAIL; return HGBASE_ERR_FAIL;
} }
int ret = mysql_query(sql, "create database if not exists huago_production_tool;"); if (0 != CreateUserConfigTable(sql, userName) || 0 != CreateMainTestTable(sql)
if (0 != ret)
{
mysql_close(sql);
return HGBASE_ERR_FAIL;
}
ret = mysql_select_db(sql, "huago_production_tool");
if (0 != ret)
{
mysql_close(sql);
return HGBASE_ERR_FAIL;
}
#if 0
mysql_query(sql, "drop table main_test;");
mysql_query(sql, "drop table initial_inspection_test;");
mysql_query(sql, "drop table initial_inspection_desc;");
mysql_query(sql, "drop table image_inspection_test;");
mysql_query(sql, "drop table image_inspection_desc;");
mysql_query(sql, "drop table pressure_inspection_test;");
mysql_query(sql, "drop table pressure_inspection_desc;");
#endif
if (0 != CreateUserConfigTable(sql, user) || 0 != CreateMainTestTable(sql)
|| 0 != CreateInitInspTestTable(sql) || 0 != CreateInitInspDescTable(sql) || 0 != CreateInitInspTestTable(sql) || 0 != CreateInitInspDescTable(sql)
|| 0 != CreateImgInspTestTable(sql) || 0 != CreateImgInspDescTable(sql) || 0 != CreateImgInspTestTable(sql) || 0 != CreateImgInspDescTable(sql)
|| 0 != CreatePreInspTestTable(sql) || 0 != CreatePreInspDescTable(sql)) || 0 != CreatePreInspTestTable(sql) || 0 != CreatePreInspDescTable(sql))
@ -161,7 +139,7 @@ HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const
} }
m_sql = sql; m_sql = sql;
m_user = user; m_userName = userName;
return HGBASE_ERR_OK; return HGBASE_ERR_OK;
} }
@ -174,10 +152,231 @@ HGResult HGPdtToolDbUserMgrImpl::Destroy()
mysql_close(m_sql); mysql_close(m_sql);
m_sql = NULL; m_sql = NULL;
m_user.clear(); m_userName.clear();
return HGBASE_ERR_OK; return HGBASE_ERR_OK;
} }
HGResult HGPdtToolDbUserMgrImpl::GetUserType(HGUInt* userType)
{
if (NULL == m_sql)
{
return HGBASE_ERR_FAIL;
}
if (NULL == userType)
{
return HGBASE_ERR_INVALIDARG;
}
*userType = HGPDTTOOLDB_USERTYPE_NORMAL;
if (0 == strcmp(m_userName.c_str(), "root"))
*userType = HGPDTTOOLDB_USERTYPE_ROOT;
return HGBASE_ERR_OK;
}
HGResult HGPdtToolDbUserMgrImpl::GetUserName(HGChar* userName, HGUInt maxLen)
{
if (NULL == m_sql)
{
return HGBASE_ERR_FAIL;
}
if (NULL == userName || 0 == maxLen)
{
return HGBASE_ERR_INVALIDARG;
}
if (maxLen < m_userName.size() + 1)
{
return HGBASE_ERR_FAIL;
}
strcpy(userName, m_userName.c_str());
return HGBASE_ERR_OK;
}
HGResult HGPdtToolDbUserMgrImpl::GetUserList(HGChar** userNameList, HGUInt maxLen, HGUInt* count)
{
if (NULL == m_sql)
{
return HGBASE_ERR_FAIL;
}
if (NULL == userNameList || 0 == maxLen || NULL == count)
{
return HGBASE_ERR_INVALIDARG;
}
HGUInt userType = 0;
GetUserType(&userType);
if (HGPDTTOOLDB_USERTYPE_ROOT != userType)
{
return HGBASE_ERR_ACCESSDENIED;
}
char sqlCmd[1024] = {0};
sprintf(sqlCmd, "select user, host from mysql.user");
int ret = mysql_query(m_sql, sqlCmd);
if (0 != ret)
{
return HGBASE_ERR_FAIL;
}
MYSQL_RES* sqlRes = mysql_use_result(m_sql);
if (NULL == sqlRes)
{
return HGBASE_ERR_FAIL;
}
*count = 0;
MYSQL_ROW row = NULL;
while ((row = mysql_fetch_row(sqlRes)) != NULL)
{
if (*count >= maxLen)
{
break;
}
assert(NULL != row[0] && NULL != row[1]);
if (0 == strcmp(row[1], "%"))
{
userNameList[*count] = (HGChar*)malloc(strlen(row[0]) + 1);
assert(NULL != userNameList[*count]);
strcpy(userNameList[*count], row[0]);
++(*count);
}
}
mysql_free_result(sqlRes);
return HGBASE_ERR_OK;
}
HGResult HGPdtToolDbUserMgrImpl::ReleaseUserList(HGChar** userNameList, HGUInt count)
{
if (NULL == userNameList || 0 == count)
{
return HGBASE_ERR_INVALIDARG;
}
for (HGUInt i = 0; i < count; ++i)
{
free(userNameList[i]);
}
return HGBASE_ERR_OK;
}
HGResult HGPdtToolDbUserMgrImpl::CreateUser(const HGChar* userName, const HGChar* defPwd)
{
if (NULL == m_sql)
{
return HGBASE_ERR_FAIL;
}
if (NULL == userName || 0 == *userName || NULL == defPwd || 0 == *defPwd)
{
return HGBASE_ERR_INVALIDARG;
}
HGUInt userType = 0;
GetUserType(&userType);
if (HGPDTTOOLDB_USERTYPE_ROOT != userType)
{
return HGBASE_ERR_ACCESSDENIED;
}
if (0 == strcmp(userName, "root"))
{
return HGBASE_ERR_FAIL;
}
char sqlCmd[1024] = {0};
sprintf(sqlCmd, "create user '%s'@'%%' identified by '%s';", userName, defPwd);
int ret = mysql_query(m_sql, sqlCmd);
if (0 != ret)
{
return HGBASE_ERR_FAIL;
}
sprintf(sqlCmd, "grant all privileges on huago_production_tool.* to '%s'@'%%' with grant option;", userName);
ret = mysql_query(m_sql, sqlCmd);
assert(0 == ret);
return HGBASE_ERR_OK;
}
HGResult HGPdtToolDbUserMgrImpl::DestroyUser(const HGChar* userName)
{
if (NULL == m_sql)
{
return HGBASE_ERR_FAIL;
}
if (NULL == userName || 0 == *userName)
{
return HGBASE_ERR_INVALIDARG;
}
HGUInt userType = 0;
GetUserType(&userType);
if (HGPDTTOOLDB_USERTYPE_ROOT != userType)
{
return HGBASE_ERR_ACCESSDENIED;
}
if (0 == strcmp(userName, "root"))
{
return HGBASE_ERR_FAIL;
}
char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "drop user '%s'@'%%';", userName);
int ret = mysql_query(m_sql, sqlCmd);
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
}
HGResult HGPdtToolDbUserMgrImpl::SetPassword(const HGChar* userName, const HGChar* pwd)
{
if (NULL == m_sql)
{
return HGBASE_ERR_FAIL;
}
if (NULL == userName || 0 == *userName || NULL == pwd || 0 == *pwd)
{
return HGBASE_ERR_INVALIDARG;
}
HGUInt userType = 0;
GetUserType(&userType);
if (HGPDTTOOLDB_USERTYPE_ROOT != userType)
{
return HGBASE_ERR_ACCESSDENIED;
}
char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "set password for '%s'@'%%' = password('%s');", userName, pwd);
int ret = mysql_query(m_sql, sqlCmd);
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
}
HGResult HGPdtToolDbUserMgrImpl::ModifyPassword(const HGChar* newPwd)
{
if (NULL == m_sql)
{
return HGBASE_ERR_FAIL;
}
if (NULL == newPwd || 0 == *newPwd)
{
return HGBASE_ERR_INVALIDARG;
}
char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "set password for '%s'@'%%' = password('%s');", m_userName.c_str(), newPwd);
int ret = mysql_query(m_sql, sqlCmd);
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
}
HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath) HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
{ {
if (NULL == m_sql) if (NULL == m_sql)
@ -190,6 +389,13 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
return HGBASE_ERR_INVALIDARG; return HGBASE_ERR_INVALIDARG;
} }
HGUInt userType = 0;
GetUserType(&userType);
if (HGPDTTOOLDB_USERTYPE_ROOT != userType)
{
return HGBASE_ERR_ACCESSDENIED;
}
std::string cmd = "select main_test.sn"; std::string cmd = "select main_test.sn";
cmd += ", main_test.create_time"; cmd += ", main_test.create_time";
cmd += ", main_test.create_user"; cmd += ", main_test.create_user";
@ -336,7 +542,7 @@ HGResult HGPdtToolDbUserMgrImpl::GetConfig(const HGChar* key, HGChar* value, HGU
} }
char sqlCmd[1024] = { 0 }; char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "select config_value from %s_config where config_key = '%s';", m_user.c_str(), key); sprintf(sqlCmd, "select config_value from %s_config where config_key = '%s';", m_userName.c_str(), key);
int ret = mysql_query(m_sql, sqlCmd); int ret = mysql_query(m_sql, sqlCmd);
if (0 != ret) if (0 != ret)
{ {
@ -388,7 +594,7 @@ HGResult HGPdtToolDbUserMgrImpl::SetConfig(const HGChar* key, const HGChar* valu
char sqlCmd[1024] = {0}; char sqlCmd[1024] = {0};
sprintf(sqlCmd, "insert into %s_config (config_key, config_value) values ('%s', '%s')", sprintf(sqlCmd, "insert into %s_config (config_key, config_value) values ('%s', '%s')",
m_user.c_str(), key, (NULL != value) ? value : ""); m_userName.c_str(), key, (NULL != value) ? value : "");
int ret = mysql_query(m_sql, sqlCmd); int ret = mysql_query(m_sql, sqlCmd);
if (0 == ret) if (0 == ret)
{ {
@ -398,7 +604,7 @@ HGResult HGPdtToolDbUserMgrImpl::SetConfig(const HGChar* key, const HGChar* valu
if (1062 == mysql_errno(m_sql)) if (1062 == mysql_errno(m_sql))
{ {
sprintf(sqlCmd, "update %s_config set config_value = '%s' where config_key = '%s'", sprintf(sqlCmd, "update %s_config set config_value = '%s' where config_key = '%s'",
m_user.c_str(), (NULL != value) ? value : "", key); m_userName.c_str(), (NULL != value) ? value : "", key);
int ret = mysql_query(m_sql, sqlCmd); int ret = mysql_query(m_sql, sqlCmd);
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL; return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
} }
@ -596,7 +802,7 @@ int HGPdtToolDbUserMgrImpl::InitMainTestItem(const HGChar* sn)
assert(NULL != sn && 0 != *sn && NULL != m_sql); assert(NULL != sn && 0 != *sn && NULL != m_sql);
std::string title = "(sn, create_time, create_user, last_modify_time, last_modify_user)"; std::string title = "(sn, create_time, create_user, last_modify_time, last_modify_user)";
std::string value = "('" + (std::string)sn + "', now(), '" + m_user + "', now(), '" + m_user + "')"; std::string value = "('" + (std::string)sn + "', now(), '" + m_userName + "', now(), '" + m_userName + "')";
std::string cmd = (std::string)"insert into main_test " + title + " values " + value + ";"; std::string cmd = (std::string)"insert into main_test " + title + " values " + value + ";";
int ret = mysql_query(m_sql, cmd.c_str()); int ret = mysql_query(m_sql, cmd.c_str());
return (1062 == mysql_errno(m_sql)) ? 0 : ret; return (1062 == mysql_errno(m_sql)) ? 0 : ret;
@ -672,7 +878,7 @@ HGResult HGPdtToolDbDeviceImpl::SetCurrEntry(HGUInt entryName)
char sqlCmd[1024] = { 0 }; char sqlCmd[1024] = { 0 };
sprintf(sqlCmd, "update main_test set current_entry = %u, last_modify_time = now(), last_modify_user = '%s' where sn = '%s';", sprintf(sqlCmd, "update main_test set current_entry = %u, last_modify_time = now(), last_modify_user = '%s' where sn = '%s';",
entryName, m_userMgr->m_user.c_str(), m_sn.c_str()); entryName, m_userMgr->m_userName.c_str(), m_sn.c_str());
int ret = mysql_query(m_userMgr->m_sql, sqlCmd); int ret = mysql_query(m_userMgr->m_sql, sqlCmd);
return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL; return (0 == ret) ? HGBASE_ERR_OK : HGBASE_ERR_FAIL;
} }
@ -750,7 +956,7 @@ HGResult HGPdtToolDbDeviceImpl::SetEntryStatus(HGUInt entryName, HGUInt entrySta
} }
sprintf(sqlCmd, "update main_test set last_modify_time = now(), last_modify_user = '%s' where sn = '%s';", sprintf(sqlCmd, "update main_test set last_modify_time = now(), last_modify_user = '%s' where sn = '%s';",
m_userMgr->m_user.c_str(), m_sn.c_str()); m_userMgr->m_userName.c_str(), m_sn.c_str());
ret = mysql_query(m_userMgr->m_sql, sqlCmd); ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret) if (0 != ret)
{ {
@ -846,7 +1052,7 @@ HGResult HGPdtToolDbDeviceImpl::SetEntryExcepDesc(HGUInt entryName, const HGChar
} }
sprintf(sqlCmd, "update main_test set last_modify_time = now(), last_modify_user = '%s' where sn = '%s';", sprintf(sqlCmd, "update main_test set last_modify_time = now(), last_modify_user = '%s' where sn = '%s';",
m_userMgr->m_user.c_str(), m_sn.c_str()); m_userMgr->m_userName.c_str(), m_sn.c_str());
ret = mysql_query(m_userMgr->m_sql, sqlCmd); ret = mysql_query(m_userMgr->m_sql, sqlCmd);
if (0 != ret) if (0 != ret)
{ {

View File

@ -14,8 +14,16 @@ public:
HGPdtToolDbUserMgrImpl(); HGPdtToolDbUserMgrImpl();
~HGPdtToolDbUserMgrImpl(); ~HGPdtToolDbUserMgrImpl();
HGResult Create(const HGChar* host, HGUShort port, const HGChar* user, const HGChar* pwd); HGResult Create(const HGChar* host, HGUShort port, const HGChar* userName, const HGChar* pwd);
HGResult Destroy(); HGResult Destroy();
HGResult GetUserType(HGUInt* userType);
HGResult GetUserName(HGChar* userName, HGUInt maxLen);
HGResult GetUserList(HGChar** userNameList, HGUInt maxLen, HGUInt *count);
static HGResult ReleaseUserList(HGChar** userNameList, HGUInt count);
HGResult CreateUser(const HGChar* userName, const HGChar* defPwd);
HGResult DestroyUser(const HGChar* userName);
HGResult SetPassword(const HGChar* userName, const HGChar* pwd);
HGResult ModifyPassword(const HGChar* newPwd);
HGResult Export(const HGChar* xlsPath); HGResult Export(const HGChar* xlsPath);
HGResult GetConfig(const HGChar *key, HGChar *value, HGUInt maxLen); HGResult GetConfig(const HGChar *key, HGChar *value, HGUInt maxLen);
HGResult SetConfig(const HGChar* key, const HGChar *value); HGResult SetConfig(const HGChar* key, const HGChar *value);
@ -39,7 +47,7 @@ private:
private: private:
MYSQL* m_sql; MYSQL* m_sql;
std::string m_user; std::string m_userName;
std::list<class HGPdtToolDbDeviceImpl*> m_deviceList; std::list<class HGPdtToolDbDeviceImpl*> m_deviceList;
}; };

View File

@ -5,11 +5,24 @@
int main() int main()
{ {
HGPdtToolDbUserMgr userMgr = NULL; HGPdtToolDbUserMgr userMgr = NULL;
HGPdtToolDb_CreateUserMgr("127.0.0.1", 3306, "huago", "huago", &userMgr); HGPdtToolDb_CreateUserMgr("192.168.1.70", 3306, "root", "123456", &userMgr);
if (NULL != userMgr) if (NULL != userMgr)
{ {
HGPdtToolDb_Export(userMgr, "D:\\1.xls"); HGChar* name[256];
HGUInt count;
HGPdtToolDb_GetUserList(userMgr, name, 256, &count);
//HGPdtToolDb_DestroyUser(userMgr, "huago");
HGPdtToolDb_CreateUser(userMgr, "huago", "huago");
//HGPdtToolDb_ModifyPassword(userMgr, "654321");
//HGPdtToolDb_SetPassword(userMgr, "huago", "qqq");
HGPdtToolDbDevice device = NULL;
HGPdtToolDb_OpenDevice(userMgr, "G123456", &device);
HGPdtToolDb_CloseDevice(device);
HGPdtToolDb_Export(userMgr, "D:\\1.xls");
HGPdtToolDb_DestroyUserMgr(userMgr); HGPdtToolDb_DestroyUserMgr(userMgr);
} }