1、D5000商用数据库程序员手册D5000商用数据库程序员手册1.历史数据访问服务1.1 客户端数据库调用接口Dci类1.1.1 连接数据库接口ConnectInt Connect(const char* server, const char* user_name, const char* pasword, ErrorInfo_t* error)1.1.1.1 参数描述表 14-1接口参数输入输出参数(返回值)说明备注serverIN数据库服务名。类似oracle中的tnsnames中描述的数据服务名。user_nameIN用户名。paswordIN用户密码。errorOUT带有错误信息的结构。
2、返回值OUT正确返回True,错误返回False。1.1.1.2 处理过程及返回值说明在需要和数据库交互时首先需要调用该接口进行连接工作,数据库客户端将用户名、密码等相关信息传递给服务器,连接数据库成功后该类将获得环境句柄evnhp,服务句柄svchp,错误句柄errhp,认证句柄authp。其中evnhp、svchp、authp为全局变量。并可以利用该类的其他接口进行和数据库的交互工作。正确返回True,错误返回False。错误结构中包括发生错误的文件名,发生错误的文件的行,数据库的返回的错误号,数据库返回的错误描述。1.1.1.3 调用方法class CDci g_CDci;Error_I
3、nfo error;Int Retcode;Retcode = g_CDci.Connect(HIS , hisdb, hisdb,error); 1.1.2 数据库断开连接DisConnectDisConnect(ErrorInfo_t* error)1.1.2.1 参数描述表 14-2接口参数输入输出参数(返回值)说明备注errorOUT错误信息返回值OUT1:正确断开和数据库的连接情况。0:因各种原因没有正确结束。1.1.2.2 处理过程及返回值说明在程序和数据库交互工作完成以后,需要通知数据库释放为该客户端链接所开的资源,调应该接口可以完成上述工作。1.1.2.3 调用方法class
4、CDci g_CDci;Int retcode;Retcode = g_CDci.DisConnect(error);1.1.3 从商用库读取数据1.1.3.1 参数描述int CDci:ReadData (IN const char *query, OUT int *rec_num, OUT int *attr_num,OUT struct ColAttr * attrs,OUT char *buf,ErrorInfo_t* error)int CDci:ReadData (IN const char *query,IN int top_number, OUT int *rec_num, O
5、UT int *attr_num,OUT struct ColAttr * attrs,OUT char *buf,ErrorInfo_t* error)表 14-3接口参数输入/输出参数(返回值)说明备注queryInSql字符串执行命令top_numberIn取数据集的前top_number行如果为-1,则将符合条件的所有结果集缺省全部输出。rec_numout返回应用的处于活动状态的机器名attr_numOut返回应用的处于活动状态的机器号attrsOut数据集各个属性的描述。bufOut数据集的首指针errorOut错误结构返回值Out1:成功;0:失败1.1.3.2 处理过程及返回值
6、说明通过该接口,数据库会根据query从数据库读取数据并返回相关数据,rec_num为返回的数据行数,attr_num为返回的属性的个数,attrs为返回的列属性数组的头指针,buf为按照先行后列规则排列的数据集合,error为接口返回错误结构,接口成功后error为空,接口失败后需要读取error的内容定位数据库错误。和FreeReadData搭对应用,以便对内存进行释放。1.1.3.3 调用方法class CDci g_CDci;Int retcode;Retcode = g_CDci.Connect(HIS,hisdb,hisdb,error);Int rec_num,attr_num;
7、Char *attrs,*buf;Retcode = g_CDci.ReadData(select * from aaa,&rec_num, &attr_num,&attrs ,&buf,error)If(Retcode !=True) Printf(“ the error no is %d and the error descr is %s “,error.error_no,error.error_info);Retcode = g_CDci.ReadData(select * from aaa, 1000,&rec_num, &attr_num,&attrs ,&buf,error)If(
8、Retcode !=True) Printf(“ the error no is %d and the error descr is %s “,error.error_no,error.error_info);1.1.4 释放数据集列属性描述结构指针,通常和ReadData接口联合使用1.1.4.1 参数描述void CDci:FreeColAttrData(ColAttr_t *col_attr, int cols)表 14-4接口参数输入/输出参数(返回值)说明备注col_attrIn列属性头指针的描述colsIn列个数返回值Out1:成功;0:失败1.1.4.2 处理过程及返回值说明在使
9、用ReadData接口取数成功后,输入ReadData接口所开的列属性的头指针和列的个数,该接口会依次释放掉数据集合列属性集中所消耗内存,确保没有内存泄漏。和GetColAttr接口搭对。1.1.4.3 调用方法class CDci g_CDci;int retcode;Error_info error1;recode = g_CDci.Connect(His,hisdb,hisdb,error);Retcode = g_CDci.ReadData(select * from aaa,&rec_num, &attr_num,&attrs ,&buf,error)If(Retcode !=Tru
10、e) Printf(“ the error no is %d and the error descr is %s “,error.error_no,error.error_info);Retcode = g_CDci. FreeColAttrData(attrs, attr_num,&error1);1.1.5 释放数据集指针,通常和ReadData接口联合使用1.1.5.1 参数描述void CDci:FreeReadData(ColAttr_t *col_attr, int colnum,char *databuf)表 14-5接口参数输入/输出参数(返回值)说明备注col_attrIn列
11、属性头指针的描述colnumIn列个数databufIn数据集指针返回值Out1:成功;0:失败1.1.5.2 处理过程及返回值说明在使用ReadData接口取数成功后,输入ReadData接口所开的列属性的头指针和列的个数,输入返回的数据集的头指针,该接口会依次释放掉数据集合列属性集中所消耗内存,释放掉数据集所耗的内存,确保没有内存泄漏。1.1.5.3 调用方法class CDci g_CDci;int retcode;Error_info error1;recode = g_CDci.Connect(His,hisdb,hisdb,error);Retcode = g_CDci.ReadD
12、ata(select * from aaa,&rec_num, &attr_num,&attrs ,&buf,error)If(Retcode !=True) Printf(“ the error no is %d and the error descr is %s “,error.error_no,error.error_info);Retcode = g_CDci. FreeReadData(attrs, attr_num,&error1);1.1.6 执行sql语句1.1.6.1 参数描述bool CDci:ExecSingle(IN const char *sqlstr,ErrorIn
13、fo_t* error)表 14-6接口参数输入/输出参数(返回值)说明备注sqlstrOut可执行的sql语句errorIn返回错误结构返回值Out1:成功;0:失败1.1.6.2 处理过程及返回值说明Sqlstr为可执行的sql语句,返回true为执行成功,返回false为执行失败。1.1.6.3 调用方法class CDci g_CDci;int retcode;Error_info error1;recode = g_CDci.Connect(His,hisdb,hisdb,error);retcode = g_CDci.ExecSingle(update aaa set a1=5 w
14、here b1=6,&error1);1.1.7 插入或更新数据至数据库1.1.7.1 参数描述bool CDci:WriteData(IN const char *query, IN const char *buf, IN const int rec_num, IN const int attr_num, IN const struct ColAttr* attrs,ErrorInfo_t* error)表 14-7接口参数输入/输出参数(返回值)说明备注queryOut可执行的sql语句bufIn返回错误结构rec_numOut记录行数attr_numOut列属性的行数attrsOut列属性结构指针errorOut错误结构指针返回值Out1:成功;0:失败1.1.7.2 处理过程及返回值说明数据库通过解析query,将buf为头指针的数据集合按照行和列属性的描述进行数据的回写。1返回成功,0返回失败。1.1.7.3 调用方法class CDci g_CDci;int retcode;Error_info er
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1