GBase新闻
南大通用GBase 8s数据库GCI编程接口使用指南
在企业级数据库应用开发中,高效访问和操作数据库是提升应用性能的关键。南大通用GBase 8s数据库系统提供了GCI(GBase Client Interface)编程接口,允许开发者通过C语言方便地访问和操作数据库。本文将详细介绍GCI的使用,包括环境设置、程序编译、以及如何运行GCI程序,帮助开发者快速掌握GBase 8s数据库的客户端开发。
01 IDS和GCI的安装位置介绍
1、安装ids、csdk(本文默认ids和csdk是安装在一起的)如:/home/gbase
2、解压GCI包(位置无特殊要求)如:/home/gci
3、进入etc目录下修改client.ksh
cd /home/gci/etc vim client.ksh
GCICLIENTDIR=/home/gci (gci路径)
GBASEDBTCSDK=/home/gbase (csdk路径)
GBASEDBTSERVER=ol_gbasedbt (实例名)
02 编译GCI程序需要设定的环境变量及含义
1、export DBUSER=gbasedbt export DBPWD=Big4ifmx
连接数据库的用户名密码,若代码中未使用DBUSER和DBPWD则不需要配置
2、GBASEDBTDIR= /home/gbase (csdk的安装路径)
其他可能会用到的环境变量(按需选用)
1、export DBDATE=Y4MD- 设置日期格式
2、设置字符格式
3、设置编译所需链接库的路径
export LD_LIBRARY_PATH=${GBASEDBTDIR}/lib:${GBASEDBTDIR}/lib/esql:${GBASEDBTDIR}/lib/cli
03 CMakelist配置
仅介绍在gci的demo目录下增加用例需要修改CMakeList, 如增加用例为test.c
cd /home/gci/demovim CMakeList.txt在CMakeList.txt中增加如下内容#编译源文件test.c生成可执行文件testADD_EXECUTABLE(test test.c)# 指定这个可执行文件test需要链接的库TARGET_LINK_LIBRARIES(test ${LIB_CLN_NAME})
04 Demo源码分析
提供了一个GCI程序的示例代码,包括数据库登录、执行SQL语句等,并解释了关键代码段的功能。
1、调用接口及流程如下图所示
2、demo示例
#include “gci.h” //gci 接口定义文件GCIEnv *envhp = NULL; GCISvcCtx *svchp = NULL;GCIError *errhp = NULL;GCIStmt *stmtp = NULL;//登陆数据库int logdb(){GCItext *dbname = (GCItext *)”testdb”; //数据库名 根据需要修改(需保证实例中有该数据库)GCItext *user= (GCItext *)”root”; //用户名 根据需要修改GCItext *pswd= (GCItext *)”111111”; //密码 根据需要修改if (GCIEnvCreate(&envhp, GCI_THREADED|GCI_OBJECT,(dvoid *)0,0,0,0,0,(dvoid **)0) != GCI_SUCCESS){printf(“GCIEnvCreate: create env handle failed!\n”);}if (GCIHandleAlloc((dvoid *)envhp, (dvoid **)&svchp,GCI_HTYPE_SVCCTX,0,(dvoid **)0) != GCI_SUCCESS){printf(“GCIHandleAlloc: allocate svcctx handle failed!\n”);}if (GCIHandleAlloc((dvoid *)envhp, (dvoid **)&errhp,GCI_HTYPE_ERROR,0,(dvoid **)0) != GCI_SUCCESS){printf(“GCIHandleAlloc: allocate error handle failed!\n”);}//调用登陆接口连接数据库if (GCILogon(envhp, errhp, &svchp, user, strlen((char *)user), pswd, strlen((char *)pswd), dbname, strlen((char *)dbname) != GCI_SUCCESS){printf(“logon database failed!\n”);}}//执行sql语句{GCIText sql[256] = {0};//分配语句句柄if (GCIHandleAlloc((dvoid *)envhp, (dvoid **)&stmtp,GCI_HTYPE_STMT,0,(dvoid **)0) != GCI_SUCCESS){printf(“GCIHandleAlloc: allocate stmt handle failed!\n”);}//准备sql语句strcpy((char *)sql, “create table t_table(id int)”);GCIStmtPrepare(stmtp, errhp, sql, strlen((char *)sql), 0 ,0);//执行prepare的sql语句GCIStmtExecute(svchp, stmtp, errhp, 1,0, NULL, NULL, GCI_COMMIT_ON_SUCCESS);}
05 编译和运行GCI程序
1、设定环境变量
cd /home/gci/demo source /home/gci/etc/client.ksh
若需要,则设置用户名和密码 export DBUSER DBPWD
2、执行脚本文件clean.sh build_linux_debug_shared.sh 然后执行make
./clean.sh./build_linux_debug_shared.shmake
3、source ids安装目录(如/home/gbase)下的profile文件或者ksh文件(ol_gbasedbt.ksh)
source ol_gbasedbt.ksh
4、执行可执行文件如:./test
通过本文的详细介绍,您应能全面了解如何在南大通用GBase 8s数据库中使用GCI进行数据库编程。GCI提供了一种高效、灵活的数据库访问方式,能够帮助开发者提升数据库应用的开发效率和性能。我们希望本文能成为您在使用GBase 8s进行数据库开发的得力助手。