GBase C API 应用示例
1.使用 GBase C API 创建连接
GBASE* gbase=NULL;
/*初始化 GBASE 结构体*/
if(!(gbase = gbase_init(0)))
{
fprintf(stderr, "不能初始化 GBASE 结构体!\n");
exit(1);
}
/*数据库连接*/
if(!gbase_real_connect(gbase, host, user, passwd, db, port, NULL, 0))
{
fprintf(stderr, "\n%s\n", gbase_error(gbase));
exit(1);
}
/*释放数据库连接句柄*/
gbase_close(gbase);
2.使用 GBase C API 执行 SQL 语句
/*数据库连接*/
if(!gbase_real_connect(gbase, host, user, passwd, db, port,
NULL, 0))
{
fprintf(stderr, "\n%s\n", gbase_error(gbase));
exit(1);
}
gbase->reconnect = 1;
/*在数据库中创建表*/
if(gbase_query(gbase, sql_drop_table))
{
fprintf(stderr, "%s", gbase_error(gbase));
exit(1);
}
if(gbase_query(gbase, sql_create_table))
{
fprintf(stderr, "\n%s\n", gbase_error(gbase));
exit(1);
}
/*向数据库表中插入数据*/
for(i=0; i<NUM_INSERT; i++)
{
id[i] = i;
sprintf(name[i], "name_%d", i);
}
for(i=0; i<NUM_INSERT; i++)
{
sprintf(sql_insert, insert_mode, id[i], name[i]);
if(gbase_query(gbase, sql_insert))
{
fprintf(stderr, "\n%s\n", gbase_error(gbase));
exit(1);
}
}
/*从数据库表中选择出数据,并显示*/
if(gbase_query(gbase, sql_select))
{
fprintf(stderr, "\n%s\n", gbase_error(gbase));
exit(1);
}
res = gbase_store_result(gbase);
printf("插入操作后表的内容\n");
if(res)
{
num_fields = gbase_num_fields(res);
while(fields = gbase_fetch_field(res))
{
printf("\t| %s ", fields->name);
}
printf("\t|\n");
while((row = gbase_fetch_row(res)) != NULL)
{
for(i=0; i < num_fields; i++)
{
printf("\t| %s ", row[i]);
}
printf("\t|\n");
}
}
/*更新数据库表中数据*/
sprintf(sql_update, update_mode, id[0]);
if(gbase_query(gbase, sql_update))
{
fprintf(stderr, "\n%s\n", gbase_error(gbase));
exit(1);
}
printf("更新操作后表的内容\n");
print_table(gbase, "g_demo1");
/*删除数据库表中数据*/
sprintf(sql_delete, delete_mode, id[1]);
if(gbase_query(gbase, sql_delete))
{
fprintf(stderr, "\n%s\n", gbase_error(gbase));
exit(1);
}
printf("删除操作后表的内容\n");
print_table(gbase, "g_demo1");
/*释放结果集*/
gbase_free_result(res);
/*释放数据库连接句柄*/
gbase_close(gbase);
}