D5000商用数据库程序员手册范本Word文档格式.docx
《D5000商用数据库程序员手册范本Word文档格式.docx》由会员分享,可在线阅读,更多相关《D5000商用数据库程序员手册范本Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
其中evnhp、svchp、authp为全局变量。
并可以利用该类的其他接口进行和数据库的交互工作。
错误结构中包括发生错误的文件名,发生错误的文件的行,数据库的返回的错误号,数据库返回的错误描述。
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
错误信息
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)
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
取数据集的前top_number行
如果为-1,则将符合条件的所有结果集缺省全部输出。
rec_num
out
返回应用的处于活动状态的机器名
attr_num
Out
返回应用的处于活动状态的机器号
attrs
数据集各个属性的描述。
buf
数据集的首指针
错误结构
成功;
失败
1.1.3.2处理过程及返回值说明
通过该接口,数据库会根据query从数据库读取数据并返回相关数据,rec_num为返回的数据行数,attr_num为返回的属性的个数,attrs为返回的列属性数组的头指针,buf为按照先行后列规则排列的数据集合,error为接口返回错误结构,接口成功后error为空,接口失败后需要读取error的内容定位数据库错误。
和FreeReadData搭对应用,以便对内存进行释放。
1.1.3.3调用方法
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,&
1.1.4释放数据集列属性描述结构指针,通常和ReadData接口联合使用
1.1.4.1参数描述
voidCDci:
FreeColAttrData(ColAttr_t*col_attr,intcols)
表14-4
col_attr
列属性头指针的描述
cols
列个数
1.1.4.2处理过程及返回值说明
在使用ReadData接口取数成功后,输入ReadData接口所开的列属性的头指针和列的个数,该接口会依次释放掉数据集合列属性集中所消耗内存,确保没有内存泄漏。
和GetColAttr接口搭对。
1.1.4.3调用方法
intretcode;
Error_infoerror1;
recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);
Retcode=g_CDci.FreeColAttrData(attrs,attr_num,&
error1);
1.1.5释放数据集指针,通常和ReadData接口联合使用
1.1.5.1参数描述
FreeReadData(ColAttr_t*col_attr,intcolnum,char*databuf)
表14-5
colnum
databuf
数据集指针
1.1.5.2处理过程及返回值说明
在使用ReadData接口取数成功后,输入ReadData接口所开的列属性的头指针和列的个数,输入返回的数据集的头指针,该接口会依次释放掉数据集合列属性集中所消耗内存,释放掉数据集所耗的内存,确保没有内存泄漏。
1.1.5.3调用方法
Retcode=g_CDci.FreeReadData(attrs,attr_num,&
1.1.6执行sql语句
1.1.6.1参数描述
boolCDci:
ExecSingle(INconstchar*sqlstr,ErrorInfo_t*error)
表14-6
sqlstr
可执行的sql语句
返回错误结构
1.1.6.2处理过程及返回值说明
Sqlstr为可执行的sql语句,返回true为执行成功,返回false为执行失败。
1.1.6.3调用方法
retcode=g_CDci.ExecSingle(‘updateaaaseta1=5whereb1=6’,&
1.1.7插入或更新数据至数据库
1.1.7.1参数描述
WriteData(INconstchar*query,INconstchar*buf,INconstintrec_num,INconstintattr_num,INconststructColAttr*attrs,ErrorInfo_t*error)
表14-7
记录行数
列属性的行数
列属性结构指针
错误结构指针
1.1.7.2处理过程及返回值说明
数据库通过解析query,将buf为头指针的数据集合按照行和列属性的描述进行数据的回写。
1返回成功,0返回失败。
1.1.7.3调用方法
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,&
if(retcode!
=0)
Printf(“theerrorcodeis%dandthedescris%s“,error.error_no,error.error.error_info);
1.1.8得到某条曲线的数据
1.1.8.1参数描述
GetCurveData(CurvePara&
param,CurveData**datapp,int&
items,ErrorInfo&
error)
表14-8
para
曲线参数信息
结构包括:
charconf_id采样表定义的配置号;
Time_t:
starttime:
要求取得的启示时间;
stoptime:
要求取得的采样终点时间;
chardev_key_id_values:
keyid描述。
Intneedpace:
步长
Intdata_format:
要求得到数据的类型,是平均值还是最大、最小值等。
Charresvererd[32]:
保留字节。
datapp
items
曲线返回点个数
1.1.8.2处理过程及返回值说明
通过解析param结构,获得曲线信息,包括曲线数据类型(最大值,最小值,第一个值,最后一个值,平均值)、数据时间间隔、曲线号(根据曲线号得到数据库表结构、数据集合和取数条件),将获得的数据存入CurveData类型的datapp指针指向的数据结构中,成功返回1,失败返回0。
1.1.8.3调用方法
1.1.9得到某个表格的数据
1.1.9.1参数描述
GetSheetData(CurvePara&
param,vector<
ColAttr_t>
&
attr,vector<
ColDataItem>
data,vector<
string>
colname,constchar*where_str,ErrorInfo&
表14-9
param
表格(曲线)参数信息
同GetCurveData接口描述。
attr
读取列信息的容器
data
返回表格数据
colname
返回表格字符串
where_str
读取表格数据的过滤条件
1.1.9.2处理过程及返回值说明
通过解析param结构,获得表格信息,包括表格数据时间间隔、表格号(根据表格号得到数据库表结构、数据集合和取数条件),将获得的数据存入ColDataItem类型的data指针指向的数据结构中,成功返回1,失败返回0。
1.1.9.3调用方法
g_CDci.GetSheetData(CurvePara&
colname,constchar*where_str,constchar*order_by,ErrorInfo&
error);
1.1.10从曲线上修改数据
1.1.10.1参数描述
SetCurveData(CurvePara&
param,CurveData*curvedatap,ub2items,ErrorInfo&
表14-10
同GetCurveData接口描述
curvedatap
1.1.10.2处理过程及返回值说明
通过解析param结构,获得表格信息,包括表格数据时间间隔、表格号(根据表格号得到数据库表结构、数据集合和取数条件),将曲线修改的数据放入到CurveData结构类型的指针中,包括要求修改的数据、质量位、一一对应的时间等信息,并最终将数据回写回数据库中。
1.1.10.3调用方法
g_CDci.SetSheetData(CurvePara&
recode=g_CDci.DisConnect(‘His’,’hisdb’,’hisdb’,error);
1.1.11从画面表格中修改数据
1.1.11.1参数描述
SetSheetData(char*model_name,vector<
SheetRecData>
rec,ErrorInfo&
表14-11
model_name
和数据结构相关的表格配置号,字符串类型。
rec
回写记录数据
出错信息
1.1.11.2处理过程及返回值说明
通过解析model_name字符串名字,获得表格信息,包括表格数据时间间隔、表格号(根据表格号得到数据库表结构、数据集合和取数条件),将表格修改的数据放入到SheetRecData结构类型的容器中,并最终将数据回写回数据库中。
1.1.11.3调用方法
1.2商用数据库服务接口HisServiceClientInterface类
1.2.1初始化客户端通信管道
1.2.1.1参数描述
intHisServiceClientInterface:
InitSocket(ServiceInfo&
service)
表14-12
service
In/Out
ServiceInfo结构,包括服务ip、端口号、底层服务分配句柄handle等信息。
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,\