D5000商用数据库程序员手册.docx
- 文档编号:3325098
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:24
- 大小:22.89KB
D5000商用数据库程序员手册.docx
《D5000商用数据库程序员手册.docx》由会员分享,可在线阅读,更多相关《D5000商用数据库程序员手册.docx(24页珍藏版)》请在冰豆网上搜索。
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_infoerror1;
recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);
conststrutColAttr*attrs=(ColAttr*)malloc(sizeof(colattr_t)*2);//有两列数据
attrs[0].data_type=DCI_INT;
attrs[0].data_size=4;
attrs[1].data_type=DCI_INT;
attrs[1].data_size=4;
charqurey[1000];
memset(query,0,1000);
strcpy(query,’updateaaaseta1=3whereb1=5’);
retcode=g_CDci.WriteData(query,buf,2,2,attrs,&error1);
if(retcode!
=0)
{
Printf(“theerrorcodeis%dandthedescris%s“,error.error_no,error.error.error_info);
}
1.1.8得到某条曲线的数据
1.1.8.1参数描述
intCDci:
:
GetCurveData(CurvePara¶m,CurveData**datapp,int&items,ErrorInfo&error)
表14-8
接口参数
输入/输出
参数(返回值)说明
备注
para
Out
曲线参数信息
结构包括:
charconf_id采样表定义的配置号;
Time_t:
starttime:
要求取得的启示时间;
Time_t:
stoptime:
要求取得的采样终点时间;
chardev_key_id_values:
keyid描述。
Intneedpace:
步长
Intdata_format:
要求得到数据的类型,是平均值还是最大、最小值等。
Charresvererd[32]:
保留字节。
datapp
In
返回错误结构
items
Out
曲线返回点个数
error
Out
错误结构
返回值
Out
1:
成功;0:
失败
1.1.8.2处理过程及返回值说明
通过解析param结构,获得曲线信息,包括曲线数据类型(最大值,最小值,第一个值,最后一个值,平均值)、数据时间间隔、曲线号(根据曲线号得到数据库表结构、数据集合和取数条件),将获得的数据存入CurveData类型的datapp指针指向的数据结构中,成功返回1,失败返回0。
1.1.8.3调用方法
classCDcig_CDci;
intretcode;
Error_infoerror1;
recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);
if(retcode!
=0)
{
Printf(“theerrorcodeis%dandthedescris%s“,error.error_no,error.error.error_info);
}
1.1.9得到某个表格的数据
1.1.9.1参数描述
intCDci:
:
GetSheetData(CurvePara¶m,vector
表14-9
接口参数
输入/输出
参数(返回值)说明
备注
param
In
表格(曲线)参数信息
同GetCurveData接口描述。
结构包括:
charconf_id采样表定义的配置号;
Time_t:
starttime:
要求取得的启示时间;
Time_t:
stoptime:
要求取得的采样终点时间;
chardev_key_id_values:
keyid描述。
Intneedpace:
步长
Intdata_format:
要求得到数据的类型,是平均值还是最大、最小值等。
Charresvererd[32]:
保留字节。
attr
In
读取列信息的容器
data
Out
返回表格数据
colname
In
返回表格字符串
where_str
In
读取表格数据的过滤条件
error
Out
返回值
Out
1:
成功;0:
失败
1.1.9.2处理过程及返回值说明
通过解析param结构,获得表格信息,包括表格数据时间间隔、表格号(根据表格号得到数据库表结构、数据集合和取数条件),将获得的数据存入ColDataItem类型的data指针指向的数据结构中,成功返回1,失败返回0。
1.1.9.3调用方法
classCDcig_CDci;
intretcode;
Error_infoerror1;
recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);
if(retcode!
=0)
{
Printf(“theerrorcodeis%dandthedescris%s“,error.error_no,error.error.error_info);
}
g_CDci.GetSheetData(CurvePara¶m,vector
1.1.10从曲线上修改数据
1.1.10.1参数描述
intCDci:
:
SetCurveData(CurvePara¶m,CurveData*curvedatap,ub2items,ErrorInfo&error)
表14-10
接口参数
输入/输出
参数(返回值)说明
备注
param
In
曲线参数信息
同GetCurveData接口描述
curvedatap
Out
读取列信息的容器
items
Out
返回表格数据
error
Out
返回表格字符串
返回值
Out
1:
成功;0:
失败
1.1.10.2处理过程及返回值说明
通过解析param结构,获得表格信息,包括表格数据时间间隔、表格号(根据表格号得到数据库表结构、数据集合和取数条件),将曲线修改的数据放入到CurveData结构类型的指针中,包括要求修改的数据、质量位、一一对应的时间等信息,并最终将数据回写回数据库中。
1.1.10.3调用方法
classCDcig_CDci;
intretcode;
Error_infoerror1;
recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);
if(retcode!
=0)
{
Printf(“theerrorcodeis%dandthedescris%s“,error.error_no,error.error.error_info);
}
g_CDci.SetSheetData(CurvePara¶m,vector
recode=g_CDci.DisConnect(‘His’,’hisdb’,’hisdb’,error);
1.1.11从画面表格中修改数据
1.1.11.1参数描述
intCDci:
:
SetSheetData(char*model_name,vector
表14-11
接口参数
输入/输出
参数(返回值)说明
备注
model_name
In
和数据结构相关的表格配置号,字符串类型。
rec
Out
回写记录数据
error
Out
出错信息
返回值
Out
1:
成功;0:
失败
1.1.11.2处理过程及返回值说明
通过解析model_name字符串名字,获得表格信息,包括表格数据时间间隔、表格号(根据表格号得到数据库表结构、数据集合和取数条件),将表格修改的数据放入到SheetRecData结构类型的容器中,并最终将数据回写回数据库中。
1.1.11.3调用方法
classCDcig_CDci;
intretcode;
Error_infoerror1;
recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);
if(retcode!
=0)
{
Printf(“theerrorcodeis%dandthedescris%s“,error.error_no,error.error.error_info);
}
g_CDci.SetSheetData(CurvePara¶m,vector
recode=g_CDci.DisConnect(‘His’,’hisdb’,’hisdb’,error);
1.2商用数据库服务接口HisServiceClientInterface类
1.2.1初始化客户端通信管道
1.2.1.1参数描述
intHisServiceClientInterface:
:
InitSocket(ServiceInfo&service)
表14-12
接口参数
输入/输出
参数(返回值)说明
备注
service
In/Out
ServiceInfo结构,包括服务ip、端口号、底层服务分配句柄handle等信息。
返回值
Out
1:
成功;0:
失败
1.2.1.2处理过程及返回值说明
如果调用HisServiceClientInterface类需要向服务总线注册通信管道和端口信息。
1.2.1.3调用方法
HisServiceClientInterfacehsci1;
ServiceInfoserviceinfo;
serviceinfo.port=20009;
hsci1.InitSocket(ServiceInfo&serviceinfo);
1.2.2从服务中得到数据
1.2.2.1参数描述
IntHisServiceClientInterface:
:
GetHisFromBaseUsingSingleSql(constchar*cmd_buff,\
time_ttimeout,H
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- D5000 商用 数据库 程序员 手册