D5000商用数据库程序员手册.docx

上传人:b****6 文档编号:3325098 上传时间:2022-11-21 格式:DOCX 页数:24 大小:22.89KB
下载 相关 举报
D5000商用数据库程序员手册.docx_第1页
第1页 / 共24页
D5000商用数据库程序员手册.docx_第2页
第2页 / 共24页
D5000商用数据库程序员手册.docx_第3页
第3页 / 共24页
D5000商用数据库程序员手册.docx_第4页
第4页 / 共24页
D5000商用数据库程序员手册.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

D5000商用数据库程序员手册.docx

《D5000商用数据库程序员手册.docx》由会员分享,可在线阅读,更多相关《D5000商用数据库程序员手册.docx(24页珍藏版)》请在冰豆网上搜索。

D5000商用数据库程序员手册.docx

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&attr,vector&data,vector&colname,constchar*where_str,ErrorInfo&error)

表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&attr,vector&data,vector&colname,constchar*where_str,constchar*order_by,ErrorInfo&error);

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&attr,vector&data,vector&colname,constchar*where_str,constchar*order_by,ErrorInfo&error);

recode=g_CDci.DisConnect(‘His’,’hisdb’,’hisdb’,error);

1.1.11从画面表格中修改数据

1.1.11.1参数描述

intCDci:

:

SetSheetData(char*model_name,vector&rec,ErrorInfo&error)

表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&attr,vector&data,vector&colname,constchar*where_str,constchar*order_by,ErrorInfo&error);

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 工作总结汇报

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1