数据库增加创建账户等功能
This commit is contained in:
parent
1661442821
commit
12451ce429
|
@ -3,7 +3,7 @@
|
|||
#include "base/HGInc.h"
|
||||
|
||||
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)
|
||||
{
|
||||
|
@ -11,7 +11,7 @@ HGResult HGAPI HGPdtToolDb_CreateUserMgr(const HGChar* host, HGUShort port,
|
|||
}
|
||||
|
||||
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)
|
||||
{
|
||||
delete userMgrImpl;
|
||||
|
@ -40,6 +40,88 @@ HGResult HGAPI HGPdtToolDb_DestroyUserMgr(HGPdtToolDbUserMgr userMgr)
|
|||
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)
|
||||
{
|
||||
if (NULL == userMgr)
|
||||
|
|
|
@ -4,6 +4,14 @@ EXPORTS
|
|||
|
||||
HGPdtToolDb_CreateUserMgr
|
||||
HGPdtToolDb_DestroyUserMgr
|
||||
HGPdtToolDb_GetUserType
|
||||
HGPdtToolDb_GetUserName
|
||||
HGPdtToolDb_GetUserList
|
||||
HGPdtToolDb_ReleaseUserList
|
||||
HGPdtToolDb_CreateUser
|
||||
HGPdtToolDb_DestroyUser
|
||||
HGPdtToolDb_SetPassword
|
||||
HGPdtToolDb_ModifyPassword
|
||||
HGPdtToolDb_Export
|
||||
HGPdtToolDb_GetUserConfig
|
||||
HGPdtToolDb_SetUserConfig
|
||||
|
|
|
@ -4,6 +4,11 @@
|
|||
#include "base/HGDef.h"
|
||||
#include "base/HGBaseErr.h"
|
||||
|
||||
/* 管理员账户 */
|
||||
#define HGPDTTOOLDB_USERTYPE_ROOT 1L
|
||||
/* 普通账户 */
|
||||
#define HGPDTTOOLDB_USERTYPE_NORMAL 2L
|
||||
|
||||
/* 拨码开关校验 */
|
||||
#define HGPDTTOOLDB_ENTRYNAME_DIAL_SWITCH 1L
|
||||
/* 检查船型开关功能 */
|
||||
|
@ -91,12 +96,36 @@ HG_DECLARE_HANDLE(HGPdtToolDbDevice);
|
|||
|
||||
/* 登录 */
|
||||
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);
|
||||
|
||||
/* 导出所有设备测试信息到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);
|
||||
|
||||
/* 获取用户配置 */
|
||||
|
|
|
@ -101,7 +101,7 @@ const HGChar* PRESSURE_INSPECTION_CN[] =
|
|||
HGPdtToolDbUserMgrImpl::HGPdtToolDbUserMgrImpl()
|
||||
{
|
||||
m_sql = NULL;
|
||||
m_user.clear();
|
||||
m_userName.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)
|
||||
{
|
||||
|
@ -123,35 +123,13 @@ HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const
|
|||
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);
|
||||
return HGBASE_ERR_FAIL;
|
||||
}
|
||||
|
||||
int ret = mysql_query(sql, "create database if not exists huago_production_tool;");
|
||||
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)
|
||||
if (0 != CreateUserConfigTable(sql, userName) || 0 != CreateMainTestTable(sql)
|
||||
|| 0 != CreateInitInspTestTable(sql) || 0 != CreateInitInspDescTable(sql)
|
||||
|| 0 != CreateImgInspTestTable(sql) || 0 != CreateImgInspDescTable(sql)
|
||||
|| 0 != CreatePreInspTestTable(sql) || 0 != CreatePreInspDescTable(sql))
|
||||
|
@ -161,7 +139,7 @@ HGResult HGPdtToolDbUserMgrImpl::Create(const HGChar* host, HGUShort port, const
|
|||
}
|
||||
|
||||
m_sql = sql;
|
||||
m_user = user;
|
||||
m_userName = userName;
|
||||
return HGBASE_ERR_OK;
|
||||
}
|
||||
|
||||
|
@ -174,10 +152,231 @@ HGResult HGPdtToolDbUserMgrImpl::Destroy()
|
|||
|
||||
mysql_close(m_sql);
|
||||
m_sql = NULL;
|
||||
m_user.clear();
|
||||
m_userName.clear();
|
||||
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)
|
||||
{
|
||||
if (NULL == m_sql)
|
||||
|
@ -190,6 +389,13 @@ HGResult HGPdtToolDbUserMgrImpl::Export(const HGChar* xlsPath)
|
|||
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";
|
||||
cmd += ", main_test.create_time";
|
||||
cmd += ", main_test.create_user";
|
||||
|
@ -336,7 +542,7 @@ HGResult HGPdtToolDbUserMgrImpl::GetConfig(const HGChar* key, HGChar* value, HGU
|
|||
}
|
||||
|
||||
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);
|
||||
if (0 != ret)
|
||||
{
|
||||
|
@ -388,7 +594,7 @@ HGResult HGPdtToolDbUserMgrImpl::SetConfig(const HGChar* key, const HGChar* valu
|
|||
|
||||
char sqlCmd[1024] = {0};
|
||||
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);
|
||||
if (0 == ret)
|
||||
{
|
||||
|
@ -398,7 +604,7 @@ HGResult HGPdtToolDbUserMgrImpl::SetConfig(const HGChar* key, const HGChar* valu
|
|||
if (1062 == mysql_errno(m_sql))
|
||||
{
|
||||
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);
|
||||
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);
|
||||
|
||||
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 + ";";
|
||||
int ret = mysql_query(m_sql, cmd.c_str());
|
||||
return (1062 == mysql_errno(m_sql)) ? 0 : ret;
|
||||
|
@ -672,7 +878,7 @@ HGResult HGPdtToolDbDeviceImpl::SetCurrEntry(HGUInt entryName)
|
|||
|
||||
char sqlCmd[1024] = { 0 };
|
||||
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);
|
||||
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';",
|
||||
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);
|
||||
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';",
|
||||
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);
|
||||
if (0 != ret)
|
||||
{
|
||||
|
|
|
@ -14,8 +14,16 @@ public:
|
|||
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 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 GetConfig(const HGChar *key, HGChar *value, HGUInt maxLen);
|
||||
HGResult SetConfig(const HGChar* key, const HGChar *value);
|
||||
|
@ -39,7 +47,7 @@ private:
|
|||
|
||||
private:
|
||||
MYSQL* m_sql;
|
||||
std::string m_user;
|
||||
std::string m_userName;
|
||||
std::list<class HGPdtToolDbDeviceImpl*> m_deviceList;
|
||||
};
|
||||
|
||||
|
|
|
@ -5,11 +5,24 @@
|
|||
int main()
|
||||
{
|
||||
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)
|
||||
{
|
||||
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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue