D5000商用数据库程序员手册.docx
《D5000商用数据库程序员手册.docx》由会员分享,可在线阅读,更多相关《D5000商用数据库程序员手册.docx(23页珍藏版)》请在冰豆网上搜索。
![D5000商用数据库程序员手册.docx](https://file1.bdocx.com/fileroot1/2022-10/27/875fc8d8-1c41-4aee-98a8-071e27b597ec/875fc8d8-1c41-4aee-98a8-071e27b597ec1.gif)
D5000商用数据库程序员手册
D5000商用数据库程序员手册
1.历史数据访问服务
1.1客户端数据库调用接口Dci类
1.1.1连接数据库接口Connect
IntConnect(constchar*server,constchar*user_name,constchar*pasword,ErrorInfo_t*error)
1.1.1.1参数描述
表14-1
接口参数
输入输出
参数(返回值)说明
备注
server
IN
数据库服务名。
类似oracle中的tnsnames中描述的数据服务名。
user_name
IN
用户名。
pasword
IN
用户密码。
error
OUT
带有错误信息的结构。
返回值
OUT
正确返回True,错误返回False。
1.1.1.2处理过程及返回值说明
在需要和数据库交互时首先需要调用该接口进行连接工作,数据库客户端将用户名、密码等相关信息传递给服务器,连接数据库成功后该类将获得环境句柄evnhp,服务句柄svchp,错误句柄errhp,认证句柄authp。
其中evnhp、svchp、authp为全局变量。
并可以利用该类的其他接口进行和数据库的交互工作。
正确返回True,错误返回False。
错误结构中包括发生错误的文件名,发生错误的文件的行,数据库的返回的错误号,数据库返回的错误描述。
1.1.1.3调用方法
classCDcig_CDci;
Error_Infoerror;
IntRetcode;
Retcode=g_CDci.Connect(‘HIS’,‘hisdb’,‘hisdb’,error);
1.1.2数据库断开连接DisConnect
DisConnect(ErrorInfo_t*error)
1.1.2.1参数描述
表14-2
接口参数
输入输出
参数(返回值)说明
备注
error
OUT
错误信息
返回值
OUT
1:
正确断开和数据库的连接情况。
0:
因各种原因没有正确结束。
1.1.2.2处理过程及返回值说明
在程序和数据库交互工作完成以后,需要通知数据库释放为该客户端链接所开的资源,调应该接口可以完成上述工作。
1.1.2.3调用方法
classCDcig_CDci;
Intretcode;
Retcode=g_CDci.DisConnect(error);
1.1.3从商用库读取数据
1.1.3.1参数描述
intCDci:
:
ReadData(INconstchar*query,OUTint*rec_num,OUTint*attr_num,OUTstructColAttr**attrs,OUTchar**buf,ErrorInfo_t*error)
intCDci:
:
ReadData(INconstchar*query,INinttop_number,OUTint*rec_num,OUTint*attr_num,OUTstructColAttr**attrs,OUTchar**buf,ErrorInfo_t*error)
表14-3
接口参数
输入/输出
参数(返回值)说明
备注
query
In
Sql字符串执行命令
top_number
In
取数据集的前top_number行
如果为-1,则将符合条件的所有结果集缺省全部输出。
rec_num
out
返回应用的处于活动状态的机器名
attr_num
Out
返回应用的处于活动状态的机器号
attrs
Out
数据集各个属性的描述。
buf
Out
数据集的首指针
error
Out
错误结构
返回值
Out
1:
成功;0:
失败
1.1.3.2处理过程及返回值说明
通过该接口,数据库会根据query从数据库读取数据并返回相关数据,rec_num为返回的数据行数,attr_num为返回的属性的个数,attrs为返回的列属性数组的头指针,buf为按照先行后列规则排列的数据集合,error为接口返回错误结构,接口成功后error为空,接口失败后需要读取error的内容定位数据库错误。
和FreeReadData搭对应用,以便对内存进行释放。
1.1.3.3调用方法
classCDcig_CDci;
Intretcode;
Retcode=g_CDci.Connect(‘HIS’,’hisdb’,’hisdb’,error);
Intrec_num,attr_num;
Char*attrs,*buf;
Retcode=g_CDci.ReadData(‘select*fromaaa’,&rec_num,&attr_num,&attrs,&buf,error)
If(Retcode!
=True)
{
Printf(“theerrornois%dandtheerrordescris%s“,error.error_no,error.error_info);
}
Retcode=g_CDci.ReadData(‘select*fromaaa’,1000,&rec_num,&attr_num,&attrs,&buf,error)
If(Retcode!
=True)
{
Printf(“theerrornois%dandtheerrordescris%s“,error.error_no,error.error_info);
}
1.1.4释放数据集列属性描述结构指针,通常和ReadData接口联合使用
1.1.4.1参数描述
voidCDci:
:
FreeColAttrData(ColAttr_t*col_attr,intcols)
表14-4
接口参数
输入/输出
参数(返回值)说明
备注
col_attr
In
列属性头指针的描述
cols
In
列个数
返回值
Out
1:
成功;0:
失败
1.1.4.2处理过程及返回值说明
在使用ReadData接口取数成功后,输入ReadData接口所开的列属性的头指针和列的个数,该接口会依次释放掉数据集合列属性集中所消耗内存,确保没有内存泄漏。
和GetColAttr接口搭对。
1.1.4.3调用方法
classCDcig_CDci;
intretcode;
Error_infoerror1;
recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);
Retcode=g_CDci.ReadData(‘select*fromaaa’,&rec_num,&attr_num,&attrs,&buf,error)
If(Retcode!
=True)
{
Printf(“theerrornois%dandtheerrordescris%s“,error.error_no,error.error_info);
}
Retcode=g_CDci.FreeColAttrData(attrs,attr_num,&error1);
1.1.5释放数据集指针,通常和ReadData接口联合使用
1.1.5.1参数描述
voidCDci:
:
FreeReadData(ColAttr_t*col_attr,intcolnum,char*databuf)
表14-5
接口参数
输入/输出
参数(返回值)说明
备注
col_attr
In
列属性头指针的描述
colnum
In
列个数
databuf
In
数据集指针
返回值
Out
1:
成功;0:
失败
1.1.5.2处理过程及返回值说明
在使用ReadData接口取数成功后,输入ReadData接口所开的列属性的头指针和列的个数,输入返回的数据集的头指针,该接口会依次释放掉数据集合列属性集中所消耗内存,释放掉数据集所耗的内存,确保没有内存泄漏。
1.1.5.3调用方法
classCDcig_CDci;
intretcode;
Error_infoerror1;
recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);
Retcode=g_CDci.ReadData(‘select*fromaaa’,&rec_num,&attr_num,&attrs,&buf,error)
If(Retcode!
=True)
{
Printf(“theerrornois%dandtheerrordescris%s“,error.error_no,error.error_info);
}
Retcode=g_CDci.FreeReadData(attrs,attr_num,&error1);
1.1.6执行sql语句
1.1.6.1参数描述
boolCDci:
:
ExecSingle(INconstchar*sqlstr,ErrorInfo_t*error)
表14-6
接口参数
输入/输出
参数(返回值)说明
备注
sqlstr
Out
可执行的sql语句
error
In
返回错误结构
返回值
Out
1:
成功;0:
失败
1.1.6.2处理过程及返回值说明
Sqlstr为可执行的sql语句,返回true为执行成功,返回false为执行失败。
1.1.6.3调用方法
classCDcig_CDci;
intretcode;
Error_infoerror1;
recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);
retcode=g_CDci.ExecSingle(‘updateaaaseta1=5whereb1=6’,&error1);
1.1.7插入或更新数据至数据库
1.1.7.1参数描述
boolCDci:
:
WriteData(INconstchar*query,INconstchar*buf,INconstintrec_num,INconstintattr_num,INconststructColAttr*attrs,ErrorInfo_t*error)
表14-7
接口参数
输入/输出
参数(返回值)说明
备注
query
Out
可执行的sql语句
buf
In
返回错误结构
rec_num
Out
记录行数
attr_num
Out
列属性的行数
attrs
Out
列属性结构指针
error
Out
错误结构指针
返回值
Out
1:
成功;0:
失败
1.1.7.2处理过程及返回值说明
数据库通过解析query,将buf为头指针的数据集合按照行和列属性的描述进行数据的回写。
1返回成功,0返回失败。
1.1.7.3调用方法
classCDcig_CDci;
intretcode;
Error_infoer