secgateway/Product/user/user_manager/usermanager-test/test_usermanager.c

690 lines
25 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <unistd.h>
#include <cjson/cJSON.h>
#include "common_user.h"
#include "array_index.h"
#include "user_group.h"
#include "user.h"
#include "user_account_config.h"
#include "user_group_config.h"
#include "user_auth.h"
#include "database.h"
#include "redisMq.h"
extern USERGROUP g_group_table[GROUP_INDEX_MAX];
extern USERACCOUNT g_user_table[USER_INDEX_MAX];
// int main1(void)
// {
// printf("初始化用户组:%d\n", init_group());
// printf("增加一个用户组:%d\n", add_group("aaa04", "描述04"));
// printf("增加一个用户组:%d\n", add_group("aaa07", "描述04"));
// printf("增加一个用户组:%d\n", add_group("aaa08", "描述04"));
// printf("增加一个用户组:%d\n", add_group("aaa09", "描述04"));
// printf("增加一个用户组:%d\n", add_group("aaa10", "描述04"));
// printf("增加一个用户组:%d\n", add_group("aaa11", "描述04"));
// printf("增加一个用户组:%d\n", add_group("aaa12", "描述04"));
// char *testgroupin = "{\"type\": 0,\"data\": {\"gname\": \"aaa21\",\"gdescription\": \"xxx\"}}";
// char *testgroupin01 = "{\"type\": 0,\"data\": {\"gname\": \"aaa22\",\"gdescription\": \"xxx\"}}";
// char * outputgroup;
// char * outputgroup01;
// outputgroup = malloc(130);
// outputgroup01 = malloc(130);
// if (NULL == outputgroup || NULL == outputgroup01)
// {
// printf("ulist fail");
// }
// int *olenth = 1;
// ret_code ret_add_group = usergroup_config_proc(1,1,testgroupin,1,outputgroup,olenth);
// printf("测试对外接口-增加一个用户组:%d\n", ret_add_group);
// printf("%s \n", outputgroup);
// ret_code ret_add_group01 = usergroup_config_proc(1,1,testgroupin01,1,outputgroup01,olenth);
// printf("测试对外接口-增加一个用户组:%d\n", ret_add_group01);
// printf("%s \n", outputgroup01);
// printf("初始化用户:%d\n", init_user());
// USERADD* addUserResullt;
// addUserResullt = (USERADD*)malloc(sizeof(USERADD));
// if (NULL == addUserResullt)
// {
// printf("shibaile");
// }
// usermanager_add_user("用户01", "aaa08", addUserResullt);
// printf("%d,用户id%d\n", addUserResullt->result, addUserResullt->userID);
// usermanager_add_user("用户02", "aaa04", addUserResullt);
// printf("%d,用户id%d\n", addUserResullt->result, addUserResullt->userID);
// usermanager_add_user("用户03", "aaa04", addUserResullt);
// printf("%d,用户id%d\n", addUserResullt->result, addUserResullt->userID);
// usermanager_add_user("用户04", "aaa04", addUserResullt);
// printf("%d,用户id%d\n", addUserResullt->result, addUserResullt->userID);
// usermanager_add_user("用户05", "aaa04", addUserResullt);
// printf("%d,用户id%d\n", addUserResullt->result, addUserResullt->userID);
// char * output1;
// output1 = malloc(50);
// if (NULL == output1)
// {
// printf("ulist fail");
// }
// char *testin = "{\"type\": 0,\"data\": {\"uname\": \"小明\",\"gname\": \"aaa08\"}}";
// int *a = 1;
// ret_code c = user_config_proc(1, 1, testin, 1, output1, a);
// printf("*******************************************************************************\n");
// printf("这里是个测试第一次结果,新增用户:%d\n", c);
// printf("%s\n", output1);
// printf("*******************************************************************************\n");
// char *testmodweb = "{\"type\":2, \"data\":{\"ID\": 2,\"GID\" : 4,\"uname\" : \"用户05\",\"gname\" : \"xxx\",\"passwd\" : \"zhelishimima123\" , \
// \"udescription\" : \"修改用\",\"multi\" : 1,\"valid\" : 1,\"valid_begin_time\" : \"2013-07-04 15:04:23\",\"valid_end_time\" : \"2019-07-04 15:04:23\"}}";
// char * output2;
// output2 = malloc(50);
// if (NULL == output2)
// {
// printf("ulist fail");
// }
// ret_code cc = user_config_proc(1, 1, testmodweb, 1, output2, a);
// printf("*******************************************************************************\n");
// printf("这里是个测试第二次结果修改用户web%d\n", cc);
// printf("%s\n", output2);
// printf("*******************************************************************************\n");
// UCHAR_FREE(output2);
// char *testmodline = "{\"type\":5, \"data\":{\"uname\": \"用户05\",\"attr_type\" : 6,\"attr_data\" : \"2018-03-03 15:04:23\"}}";
// char * output3;
// output3 = malloc(50);
// if (NULL == output3)
// {
// printf("ulist fail");
// }
// ret_code ccc = user_config_proc(1, 1, testmodline, 1, output3, a);
// printf("*******************************************************************************\n");
// printf("这里是个测试第三次结果,修改用户-line%d\n", ccc);
// printf("%s\n", output3);
// printf("*******************************************************************************\n");
// UCHAR_FREE(output3);
// return 0;
// }
void offline_force(char *userid)
{
bool ret = redisPubInit();
if (!ret)
{
printf("Init failed.\n");
return;
}
ret = redisPubConnect();
if (!ret)
{
printf("connect failed.");
return;
}
// while (true)
// {
// redisPublish(OFFLINE_USER_BY_UID, userid);
// sleep(1);
// }
redisPublish(OFFLINE_USER_BY_UID, userid);
//sleep(1);
redisPubDisconnect();
redisPubUninit();
return;
}
int main1(void)
{
offline_force("111");
offline_force("222");
offline_force("333");
return 0;
}
void test_func_recv(struct RecvMsg_t *mmsg)
{
if (mmsg->msg)
{
printf("%s,%d,%llu,%s,%d\n", __FUNCTION__, __LINE__, pthread_self(), mmsg->msg, mmsg->len);
freeMsg(mmsg);
}
}
void sub_example()
{
bool ret = redisSubInit(8);
if (!ret)
{
printf("Init failed.\n");
return;
}
redisRegisterChannelFunc("offuser_by_userid_channel",test_func_recv);
ret = redisSubConnect();
if (!ret)
{
printf("Connect failed.\n");
return;
}
redisSubscriber("offuser_by_userid_channel");
while (true)
{
sleep(1);
}
redisSubDisconnect();
redisSubUninit();
return;
}
int main(void)
{
// int ID = 1;
// int GID_temp = 2;
// char *uname = "xiaoming";
// char *udesp = "";
// int multi = 0;
// int valid = 0;
// char *valid_begin_time = "";
// char *valid_end_time = "";
// void *adduser_hdbc = connect_database(USER_ACCOUNT_DATABASE_ID);
// if(NULL == adduser_hdbc)
// {
// printf("aaaaaaaaa");
// }
// char *adduser_sql = "INSERT INTO `user_account` SET id = ?, group_id = ?, user_name = ?, password = ?, udescription = ?, \
// multi_player = ?, valid_always = ?, valid_begin_time = ?, valid_end_time = ?";
// int ret_adduser = update_database(USER_ACCOUNT_DATABASE_ID, adduser_hdbc, DB_OP_INSERT, USER_TABLE, adduser_sql, 9,
// DB_DATA_INT_TYPE, sizeof(ID), ID,
// DB_DATA_INT_TYPE, sizeof(GID_temp), GID_temp,
// DB_DATA_STRING_TYPE, strlen(uname)+1, uname,
// DB_DATA_STRING_TYPE, 9, "12345678",
// DB_DATA_STRING_TYPE, strlen(udesp)+1, udesp,
// DB_DATA_INT_TYPE, sizeof(multi), multi,
// DB_DATA_INT_TYPE, sizeof(valid), valid,
// DB_DATA_STRING_TYPE, strlen(valid_begin_time)+1, valid_begin_time,
// DB_DATA_STRING_TYPE, strlen(valid_end_time)+1,valid_end_time);
// printf("ret_adduser = %d .\n",ret_adduser);
// return 0;
printf("初始化用户组:%d\n", init_group());
printf("增加一个用户组:%d\n", add_group("", ""));
printf("增加一个用户组:%d\n", add_group("aaa01", "描述02"));
printf("增加一个用户组:%d\n", add_group("aaa03", "描述03"));
printf("增加一个用户组:%d\n", add_group("aaa,", "描述04"));
printf("增加一个用户组:%d\n", add_group("", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa04", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa07", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa08", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa09", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa10", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa11", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa12", "描述04"));
//USERGROUP U[22] = { 0 };
int gsize = get_group_count();
USERGROUP* U;
U = (USERGROUP*)malloc(sizeof(USERGROUP) * gsize);
if (NULL == U)
{
printf("shibaile");
}
show_group_list(U);
for (int i = 0; i < gsize; i++)
{
printf("第 %d 用户组 ID : %d, NAME: %s, 描述:%s \n", i, U[i].ID, U[i].gname, U[i].gdescription);
}
// char* name1 = { "aaa18" };
// printf("删除一个组:%s, %d\n", name1, del_group_by_name(name1));
// printf("删除一个组:%s, %d\n", "aaa03", del_group_by_name("aaa03"));
// printf("删除一个组:%s, %d\n", "aaaa03", del_group_by_name("aaaa03"));
printf("增加一个用户组:%d\n", add_group("aaa30", "就爱看九分阿道夫就卡了阿道夫阿道夫就"));
printf("增加一个用户组:%d\n", add_group("aaa31", "描述31"));
printf("增加一个用户组:%d\n", add_group("aaa32", "描述31"));
printf("增加一个用户组:%d\n", add_group("aaa13", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa14", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa15", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa16", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa17", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa18", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa18", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa20", "描述04"));
//printf("增加一个用户组:%d\n", add_group("aaa21", "描述04"));
char *testgroupin = "{\"type\": 0,\"data\": {\"gname\": \"aaa21\",\"gdescription\": \"xxx\"}}";
char * outputgroup;
outputgroup = malloc(130);
if (NULL == outputgroup)
{
printf("ulist fail");
}
int olenth_01 = 1;
int *olenth = &olenth_01;
ret_code ret_add_group = usergroup_config_proc(1,1,testgroupin,1,outputgroup,olenth);
printf("测试对外接口-增加一个用户组:%d\n", ret_add_group);
printf("%s \n", outputgroup);
UCHAR_FREE(outputgroup);
printf("增加一个用户组:%d\n", add_group("aaa22", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa23", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa20", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa20", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa24", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa25", "描述04"));
printf("增加一个用户组:%d\n", add_group("aaa26", "描述04"));
gsize = get_group_count();
USERGROUP* U1;
U1 = (USERGROUP*)malloc(sizeof(USERGROUP) * gsize);
if (NULL == U1)
{
printf("shibaile");
}
show_group_list(U1);
for (int i = 0; i < gsize; i++)
{
printf("第 %d 用户组 ID : %d, NAME: %s, 描述:%s \n", i, U1[i].ID, U1[i].gname, U1[i].gdescription);
}
char* name2 = { "aaa10" };
USERGROUP* U2;
U2 = (USERGROUP*)malloc(sizeof(USERGROUP));
if (NULL == U2)
{
printf("shibaile");
}
find_group_by_name(name2, U2);
if (NULL != U2)
{
printf("%s, %d, %s, %s \n", name2, U2->ID, U2->gname, U2->gdescription);
}
printf("*************************************\n");
printf("初始化用户:%d\n", init_user());
for (int i = 0; i < 10; i++)
{
printf("初始化后的第 %d 个用户,ID:%d, PWD:%s \n", i, g_user_table[i].ID, g_user_table[i].passwd);
}
USERADD* addUserResullt;
addUserResullt = (USERADD*)malloc(sizeof(USERADD));
printf("sizeof(USERADD): %d\n",sizeof(USERADD));
memset(addUserResullt, 0, sizeof(USERADD));
if (NULL == addUserResullt)
{
printf("shibaile");
}
usermanager_add_user("用户01", "aaa04", "hello", 0, 0, NULL, NULL,addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
//addUserResullt = AddUser("用户02", "aaa04", NULL);
//printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user(NULL, "aaa04", NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("", "aaa04", NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户04,", "aaa04", NULL,0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户05", "aCaa04", NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户01", "aaa04", NULL, 0, 0, NULL, NULL,addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户04", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户05", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户06", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户07", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户08", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
usermanager_add_user("用户09", "aaa07", NULL, 0, 0, NULL, NULL, addUserResullt);
printf("%d,%d\n", addUserResullt->result, addUserResullt->userID);
char * output1;
output1 = malloc(40);
if (NULL == output1)
{
printf("ulist fail");
}
char *testin = "{\"type\": 0,\"data\": {\"uname\": \"小明\",\"gname\": \"aaa14\"}}";
int a_01 = 1;
int *a = &a_01;
ret_code c = user_config_proc(1, 1, testin, 1, output1, a);
printf("*******************************************************************************\n");
printf("这里是个测试第一次结果,新增用户:%d\n", c);
printf("%s\n", output1);
printf("*******************************************************************************\n");
UCHAR_FREE(output1);
for (int i = 0; i < USER_INDEX_MAX; i++)
{
if (g_user_table[i].ID != 0)
{
printf("tianjia后的第 %d 个用户, ID:%d, GID:%d, 用户名:%s, PWD:%s \n", i, g_user_table[i].ID, g_user_table[i].GID, g_user_table[i].uname, g_user_table[i].passwd);
}
}
printf("*****************************************************\n");
USERLIST* ulist;
ulist = (USERLIST*)malloc(sizeof(USERLIST));
if (NULL == ulist)
{
printf("ulist fail");
}
unsigned short id1 = 2;
get_user_by_id(id1, ulist);
printf("查找id为:%d, 用户名:%s, 用户组ID:%d用户组名%s,描述:%s", id1, ulist->uname, ulist->GID, ulist->gname, ulist->udescription);
printf(" ,多用户登陆:%d, 永久性:%d, 开始时间:%s, 结束时间:%s", ulist->multi, ulist->valid, ulist->valid_begin_time, ulist->valid_end_time);
printf("密码:%s\n", ulist->passwd);
// USERLIST* ulist2;
// ulist2 = (USERLIST*)malloc(sizeof(USERLIST));
// if (NULL == ulist2)
// {
// printf("ulist fail");
// }
// ulist2->ID = 2;
// ulist2->GID = 4;
// strcpy(ulist2->udescription, "修改用");
// strcpy(ulist2->passwd, "zhelishimima123");
// ulist2->multi = 1;
// ulist2->valid = 1;
// strcpy(ulist2->valid_begin_time, "2013-07-04 15:04:23");
// strcpy(ulist2->valid_end_time, "2019-07-04 15:04:23");
// printf("%d\n", mod_user_web(ulist2));
char *testmodweb = "{\"type\":2, \"data\":{\"ID\": 3,\"GID\" : 5,\"uname\" : \"用户05\",\"gname\" : \"aaa07\", \"resetpwd\" : 1,\
\"udescription\" : \"修改用\",\"multi\" : 1,\"valid\" : 1,\"valid_begin_time\" : \"2013-07-04 15:04:23\",\"valid_end_time\" : \"2019-10-04 15:04:23\"}}";
char * output2;
output2 = malloc(50);
if (NULL == output2)
{
printf("ulist fail");
}
//printf("123 .\n");
ret_code cc = user_config_proc(1, 1, testmodweb, 1, output2, a);
printf("*******************************************************************************\n");
printf("这里是个测试第二次结果修改用户web%d\n", cc);
printf("%s\n", output2);
printf("*******************************************************************************\n");
UCHAR_FREE(output2);
USERLIST* ulist22;
ulist22 = (USERLIST*)malloc(sizeof(USERLIST));
if (NULL == ulist22)
{
printf("ulist fail");
}
// get_user_by_id(id1, ulist22);
// printf("查找id为:%d, 用户名:%s, 用户组ID:%d用户组名%s,描述:%s", id1, ulist22->uname, ulist22->GID, ulist22->gname, ulist22->udescription);
// printf(" ,多用户登陆:%d, 永久性:%d, 开始时间:%s, 结束时间:%s", ulist22->multi, ulist22->valid, ulist22->valid_begin_time, ulist22->valid_end_time);
// printf("密码:%s\n", ulist22->passwd);
//printf("内存表中的时间:%lld,%lld, mul_avil:%d", g_user_table[2].valid_begin_time, g_user_table[2].valid_end_time, g_user_table[2].multi_valid);
mod_user_line("用户06", 0, "testtest描述");
mod_user_line("用户06", 1, "aaa12");
mod_user_line("用户06", 2, "zhelishidenglumima");
mod_user_line("用户05", 3, "1");
mod_user_line("用户06", 4, "1");
mod_user_line("用户06", 5, "2013-03-03 15:04:23");
mod_user_line("用户05", 6, "2018-03-03 15:04:23");
mod_user_line("用户05", 7, "2020-03-03 15:04:23");
char *testmodline = "{\"type\":5, \"data\":{\"uname\": \"用户06\",\"attr_type\" : 6,\"attr_data\" : \"2018-03-03 15:04:23\"}}";
char * output3;
output3 = malloc(50);
if (NULL == output3)
{
printf("ulist fail");
}
ret_code ccc = user_config_proc(1, 1, testmodline, 1, output3, a);
printf("*******************************************************************************\n");
printf("这里是个测试第三次结果,修改用户-line%d\n", ccc);
printf("%s\n", output3);
printf("*******************************************************************************\n");
UCHAR_FREE(output3);
// unsigned short id2 = 3;
// get_user_by_id(id2, ulist22);
// printf("查找id为:%d, 用户名:%s, 用户组ID:%d用户组名%s,描述:%s", id2, ulist22->uname, ulist22->GID, ulist22->gname, ulist22->udescription);
// printf(" ,多用户登陆:%d, 永久性:%d, 开始时间:%s, 结束时间:%s", ulist22->multi, ulist22->valid, ulist22->valid_begin_time, ulist22->valid_end_time);
// printf("密码:%s\n", ulist22->passwd);
// printf("*********************************************************************************\n");
char * output4;
output4 = malloc(100);
if (NULL == output4)
{
printf("ulist fail");
}
char *testin4 = "{\"type\": 1,\"data\":[\"用户01\", \"用户02\", \"用户04\"]}";
int a4_01 = 1;
int *a4 = &a4_01;;
ret_code c4 = user_config_proc(1, 1, testin4, 1, output4, a4);
printf("*******************************************************************************\n");
printf("这里是个测试第四次结果,删除用户:%d\n", c4);
printf("%s\n", output4);
printf("*******************************************************************************\n");
UCHAR_FREE(output4);
char * output5;
output5 = malloc(100);
if (NULL == output5)
{
printf("ulist fail");
}
char *testin5 = "{\"type\": 1,\"data\":[\"aaa\", \"aaa07\", \"aaa08\"]}";
int a5_01 = 1;
int *a5 = &a5_01;
ret_code c5 = usergroup_config_proc(1, 1, testin5, 1, output5, a5);
printf("*******************************************************************************\n");
printf("这里是个测试第五次结果,删除用户组:%d\n", c5);
printf("%s\n", output5);
printf("*******************************************************************************\n");
UCHAR_FREE(output5);
USER_AUTH_RET *aret;
aret = (USER_AUTH_RET*)malloc(sizeof(USER_AUTH_RET));
if (NULL == aret)
{
printf("111111111111");
}
time_t t1 = time(NULL);
user_auth_login("用户07", "12345678", aret);
printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id);
sleep(1);
t1 = time(NULL);
USER_AUTH_RET aret01;
user_auth_login("用户05", "zhelishidenglumima", &aret01);
printf("%d,%d,%d\n", aret01.ret, aret01.user_id, aret01.group_id);
// sleep(1);
// t1 = time(NULL);
// user_auth_login("用户05", "zhelishidenglumima", aret);
// printf("%d,%d,%d\n",aret->ret,aret->user_id,aret->group_id);
// sleep(1);
// t1 = time(NULL);
// user_auth_login("用户05", "zhelishidenglumima", aret);
// printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id);
// sleep(1);
// t1 = time(NULL);
// user_auth_login("用户05", "zhelishidenglumima", aret);
// printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id);
// sleep(1);
// t1 = time(NULL);
// user_auth_login("用户05", "zhelishidenglumima", aret);
// printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id);
// mod_user_line("用户05", 6, "2020-03-03 15:04:23");
// sleep(1);
// t1 = time(NULL);
// user_auth_login("用户05", "zhelishidenglumima", aret);
// printf("%d,%d,%d\n", aret->ret, aret->user_id, aret->group_id);
char * output6;
output6 = malloc(100);
if (NULL == output6)
{
printf("ulist fail");
}
char *testin6 = "{\"type\": 1,\"data\":[\"用户01\", \"用户02\", \"用户04\", \"用户05\"]}";
int a6_01 = 1;
int *a6 = &a6_01;;
ret_code c6 = user_config_proc(1, 1, testin6, 1, output6, a6);
printf("*******************************************************************************\n");
printf("这里是个测试第六次结果,删除用户05%d\n", c4);
printf("%s\n", output6);
printf("*******************************************************************************\n");
UCHAR_FREE(output6);
int user_ids[3] = {1,2,4};
reset_online_by_userid(user_ids, 3);
void * test_hdbc;
/* 连接数据库 */
test_hdbc = connect_database(12);
if(NULL == test_hdbc)
{
printf("fall connnect database. \n");
return -1;
}
int num_sql;
int ret;
char * ret_sql = NULL;
char * select_sql = "SELECT U.uid, U.id FROM `user_group` U WHERE id > ?";
ret_sql = select_datebase_by_number(1, test_hdbc, "user_group", select_sql, 1, 20, &num_sql, 1,
DB_DATA_INT_TYPE, 8, 2);
printf("num_sql = %d \n", num_sql);
printf("test_hdbc = %s \n", test_hdbc);
//printf("ret_sql = %s \n",ret_sql);
/* 创建table, 其中列类型包括长整形、浮点型、字符串 */
//ret = create_database_table(1, test_hdbc, "ctest", "create table ctest ( id bigint, fl double, dt character(10), status character(7))");
/* 根据指定信息查询数据库的获取的结果的条目数 */
ret = get_select_datebase_number(1, test_hdbc, "ctest", "select * from ctest where id = '911231233333333337'", &num_sql, 0);
printf("num_sql = %d \n", num_sql);
printf("ret = %d \n", ret);
int num;
char * retptr = NULL;
retptr = select_datebase_by_number(1, test_hdbc, "user_group", " SELECT UG.id FROM user_group UG WHERE UG.gname = '用户组01'", 1, 0, &num, 0);
printf("user_group = %s\n", retptr);
retptr = select_datebase_by_number(1, test_hdbc, "user_account", " SELECT * FROM user_account WHERE id = 4", 1, 0, &num, 0);
printf("user_group = %s\n", retptr);
char *usergrouname = "test17";
num = update_database(1, test_hdbc, DB_OP_INSERT, "user_group", "INSERT INTO user_group SET id = ?, gname = ? ", 2,
DB_DATA_INT_TYPE, 4, 26,
DB_DATA_STRING_TYPE, strlen(usergrouname), usergrouname);
printf("insert user_group ret = %d \n", num);
num = update_database(1, test_hdbc, DB_OP_DEL, "user_group", "DELETE FROM user_group WHERE gname = ? ", 1,
DB_DATA_STRING_TYPE, 10, "用户组03");
printf("delete user_group ret = %d \n", num);
num = update_database(1, test_hdbc, DB_OP_UPDATE, "user_group", "UPDATE user_group SET gdescription = ? WHERE gname = ? ", 2,
DB_DATA_STRING_TYPE, 10, "z111111111111111111",
DB_DATA_STRING_TYPE, 10, "test04");
printf("update user_group ret = %d \n", num);
// num = update_database(1, test_hdbc, 1, "user_account",
// "INSERT INTO user_account SET id = ?, group_id = ?, user_name = ?", 3,
// DB_DATA_INT_TYPE, 4, 9,
// DB_DATA_INT_TYPE, 4, 3,
// DB_DATA_STRING_TYPE, 10, "test01");
// printf("insert user01 ret = %d \n", num);
// num = update_database(1, test_hdbc, 1, "user_account",
// "INSERT INTO user_account SET id = 8, group_id = 12, user_name = 'test02' ", 0);
// printf("insert user02 ret = %d \n", num);
// num = update_database(1, test_hdbc, 1, "user_group",
// "INSERT INTO user_group SET id = ?, gname = ?", 2,
// DB_DATA_INT_TYPE, 4, 10,
// DB_DATA_STRING_TYPE, 10, "test04");
// printf("insert user_group ret = %d \n", num);
// ret = update_database(1, test_hdbc, 1, "ctest", "insert into ctest values(?, ?, ?, '30' )", 3,
// DB_DATA_INT_TYPE, 4, 91123123333333333,
// DB_DATA_FLOAT_TYPE, 8, 11111111.555555555,
// DB_DATA_STRING_TYPE, 4, "TEMP");
// printf("insert ret = %d \n", ret);
ret = disconnect_database(1, test_hdbc);
return 0;
}