D5000商用数据库程序员手册范本_第1页
D5000商用数据库程序员手册范本_第2页
D5000商用数据库程序员手册范本_第3页
D5000商用数据库程序员手册范本_第4页
D5000商用数据库程序员手册范本_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

历史数据接见服务1.1客户端数据库调用接口Dci类连结数据库接口ConnectIntConnect(constchar*server,constchar*user_name,constchar*pasword,ErrorInfo_t*error)参数描绘表1-1接口参数输入输出参数(返回值)说明备注类似oracle中的serverIN数据库服务名。tnsnames中描绘的数据服务名。user_nameIN用户名。paswordIN用户密码。errorOUT带有错误信息的结构。返回值OUT正确返回True,错误返回False。办理过程及返回值说明在需要和数据库交互时首先需要调用该接口进行连结工作,数据库客户端将用户名、密码等有关信息传达给服务器,连结数据库成功后该类将获得环境句柄evnhp,服务句柄svchp,错误句柄errhp,认证句柄authp。其中evnhp、svchp、authp为全局变量。并能够利用该类的其他接口进行和数据库的交互工作。正确返回True,错误返回False。错误构造中包括发生错误的文件名,发生错误的文件的行,数据库的返回的错误号,数据库返回的错误描绘。调用方法classCDcig_CDci;Error_Infoerror;IntRetcode;Retcode=g_CDci.Connect(‘HIS’,‘hisdb’,‘hisdb’,error);数据库断开连结DisConnectDisConnect(ErrorInfo_t*error)参数描绘表1-2接口参数输入输出参数(返回值)说明备注errorOUT错误信息1:正确断开和数据库返回值OUT的连结情况。0:因各样原因没有正确结束。办理过程及返回值说明在程序和数据库交互工作达成此后,需要通知数据库释放为该客户端所开的资源,调应当接口能够达成上述工作。调用方法classCDcig_CDci;Intretcode;Retcode=g_CDci.DisConnect(error);从商用库读取数据参数描绘intCDci::ReadData(INconstchar*query,OUTint*rec_num,OUTint*attr_num,OUTstructColAttrattrs,OUTcharbuf,ErrorInfo_t*error)intCDci::ReadData(INconstchar*query,INinttop_number,OUTint*rec_num,OUTint*attr_num,OUTstructColAttrattrs,OUTcharbuf,ErrorInfo_t*error)表1-3接口参数输入/输出参数(返回值)说明备注queryInSql字符串履行命令取数据集的前如果为-1,则将切合top_numberIn条件的所有结果集缺top_number行省全部输出。rec_numout返回应用的处于活动状态的机器名attr_numOut返回应用的处于活动状态的机器号attrsOut数据集各个属性的描述。bufOut数据集的首指针errorOut错误构造返回值Out1:成功;0:失败办理过程及返回值说明经过该接口,数据库会根据query从数据库读取数据并返回有关数据,rec_num为返回的数据行数,attr_num为返回的属性的个数,attrs为返回的列属性数组的头指针,buf为按照先行后列规则排列的数据会合,error为接口返回错误构造,接口成功后error为空,接口失败后需要读取error的容定位数据库错误。和FreeReadData搭对应用,以便对存进行释放。调用方法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&attr_num,&attrs,&buf,error)If(Retcode!=True){

*from

aaa’,

1000,&rec_num,Printf(

the

error

nois

%d

andthe

error

descr

is

%s“,error.error_no,error.error_info);}释放数据集列属性描绘构造指针,往常和ReadData接口结合使用参数描绘voidCDci::FreeColAttrData(ColAttr_t*col_attr,intcols)表1-4接口参数输入/输出参数(返回值)说明备注col_attrIn列属性头指针的描绘colsIn列个数返回值Out1:成功;0:失败办理过程及返回值说明在使用ReadData接口取数成功后,输入ReadData接口所开的列属性的头指针和列的个数,该接口会依次释放掉数据会合列属性集中所消耗存,保证没有存泄露。和GetColAttr接口搭对。调用方法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);释放数据集指针,往常和ReadData接口结合使用参数描绘voidCDci::FreeReadData(ColAttr_t*col_attr,intcolnum,char*databuf)表1-5接口参数输入/输出参数(返回值)说明备注col_attrIn列属性头指针的描绘colnumIn列个数databufIn数据集指针返回值Out1:成功;0:失败办理过程及返回值说明在使用ReadData接口取数成功后,输入ReadData接口所开的列属性的头指针和列的个数,输入返回的数据集的头指针,该接口会依次释放掉数据会合列属性集中所消耗存,释放掉数据集所耗的存,保证没有存泄露。调用方法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);履行sql语句参数描绘boolCDci::ExecSingle(INconstchar*sqlstr,ErrorInfo_t*error)表1-6接口参数输入/输出参数(返回值)说明备注sqlstrOut可履行的sql语句errorIn返回错误构造返回值Out1:成功;0:失败办理过程及返回值说明Sqlstr为可履行的sql语句,返回true为履行成功,返回false为履行失败。调用方法classCDcig_CDci;intretcode;Error_infoerror1;recode=g_CDci.Connect(‘His’,’hisdb’,’hisdb’,error);retcode=g_CDci.ExecSingle(‘updateaaaseta1=5whereb1=6’,&error1);插入或更新数据至数据库参数描绘boolCDci::WriteData(INconstchar*query,INconstchar*buf,INconstintrec_num,INconstintattr_num,INconststructColAttr*attrs,ErrorInfo_t*error)表1-7接口参数输入/输出参数(返回值)说明备注queryOut可履行的sql语句bufIn返回错误构造rec_numOut记录行数attr_numOut列属性的行数attrsOut列属性构造指针errorOut错误构造指针返回值Out1:成功;0:失败办理过程及返回值说明数据库经过解析query,将buf为头指针的数据会合按照行和列属性的描绘进行数据的回写。1返回成功,0返回失败。调用方法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);}获得某条曲线的数据参数描绘intCDci::GetCurveData(CurvePara¶m,CurveDatadatapp,int&items,ErrorInfo&error)表1-8接口参数输入/输出参数(返回值)说明备注构造包括:charconf_id采样表定义的配置号;Time_t:starttime:要求取得的启迪时间;Time_t:stoptime:要求取得的采样终点时间;charparaOut曲线参数信息dev_key_id_values:keyid描述。Intneedpace:步长Intdata_format:要求获得数据的种类,是平均值仍是最大、最小值等。Charresvererd[32]:保留字节。datappIn返回错误构造itemsOut曲线返回点个数errorOut错误构造返回值Out1:成功;0:失败办理过程及返回值说明经过解析param构造,获得曲线信息,包括曲线数据种类(最大值,最小值,第一个值,最后一个值,平均值)、数据时间间隔、曲线号(根据曲线号获得数据库表构造、数据会合和取数条件),将获得的数据存入CurveData种类的datapp指针指向的数据构造中,成功返回1,失败返回0。调用方法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);}获得某个表格的数据参数描绘intCDci::GetSheetData(CurvePara¶m,vector<ColAttr_t>&attr,vector<ColDataItem>&data,vector<string>&colname,constchar*where_str,ErrorInfo&error)表1-9接口参数输入/输出参数(返回值)说明备注param表格(曲线)参数信In息attrIn读取列信息的容器dataOut返回表格数据colnameIn返回表格字符串where_strIn读取表格数据的过滤条件errorOut返回值Out1:成功;0:失败

同GetCurveData接口描绘。构造包括:charconf_id采样表定义的配置号;Time_t:starttime:要求取得的启迪时间;Time_t:stoptime:要求取得的采样终点时间;chardev_key_id_values:keyid描绘。Intneedpace:步长Intdata_format:要求获得数据的种类,是平均值仍是最大、最小值等。Charresvererd[32]:保留字节。办理过程及返回值说明经过解析param构造,获得表格信息,包括表格数据时间间隔、表格号(根据表格号获得数据库表构造、数据会合和取数条件),将获得的数据存入ColDataItem种类的data指针指向的数据构造中,成功返回1,失败返回0。调用方法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<ColDataItem>&data,vector<string>

vector<ColAttr_t>&colname,const

&attr,char*where_str,constchar*order_by,ErrorInfo&error);从曲线上改正数据参数描绘intCDci::SetCurveData(CurvePara¶m,CurveData*curvedatap,ub2items,ErrorInfo&error)表1-10接口参数输入/输出参数(返回值)说明备注paramIn曲线参数信息同GetCurveData接口描绘curvedatapOut读取列信息的容器itemsOut返回表格数据errorOut返回表格字符串返回值Out1:成功;0:失败办理过程及返回值说明经过解析param构造,获得表格信息,包括表格数据时间间隔、表格号(根据表格号获得数据库表构造、数据会合和取数条件),将曲线改正的数据放入到CurveData构造种类的指针中,包括要求改正的数据、质量位、一一对应的时间等信息,并最终将数据回写回数据库中。调用方法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<ColAttr_t>&attr,vector<ColDataItem>&data,vector<string>&colname,constchar*where_str,constchar*order_by,ErrorInfo&error);recode=g_CDci.DisConnect(‘His’,’hisdb’,’hisdb’,error);从画面表格中改正数据参数描绘intCDci::SetSheetData(char*model_name,vector<SheetRecData>&rec,ErrorInfo&error)表1-11接口参数输入/输出参数(返回值)说明备注和数据构造有关的表model_nameIn格配置号,字符串类型。recOut回写记录数据errorOut犯错信息返回值Out1:成功;0:失败办理过程及返回值说明经过解析model_name字符串名字,获得表格信息,包括表格数据时间间隔、表格号(根据表格号获得数据库表构造、数据会合和取数条件),将表格改正的数据放入到SheetRecData构造种类的容器中,并最终将数据回写回数据库中。调用方法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<ColAttr_t>&attr,vector<ColDataItem>&data,vector<string>&colname,constchar*where_str,constchar*order_by,ErrorInfo&error);recode=g_CDci.DisConnect(‘His’,’hisdb’,’hisdb’,error);1.2商用数据库服务接口HisServiceClientInterface类初始化客户端通信管道参数描绘intHisServiceClientInterface::InitSocket(ServiceInfo&service)表1-12接口参数输入/输出参数(返回值)说明备注ServiceInfo构造,包serviceIn/Out括服务ip、端口号、底层服务分派句柄handle等信息。返回值Out1:成功;0:失败办理过程及返回值说明如果调用HisServiceClientInterface类需要向服务总线注册通信管道和端口信息。调用方法HisServiceClientInterfacehsci1;ServiceInfoinfo;serviceinfo.port=20009;hsci1.InitSocket(ServiceInfo&serviceinfo);从服务中获得数据参数描绘IntHisServiceClientInterface::GetHisFromBaseUsingSingleSql(constchar*cmd_buff,\time_ttimeout,HisInfo_structhisinforp,\chardatabuff,ColAttr_tcolattrpp,\int*colnum,int*recnum,ErrorInfo*error)表1-13接口参数输入/输出参数(返回值)说明备注ServiceInfo构造,包cmd_buffIn/Out括服务ip、端口号、底层服务分派句柄handle等信息。timeoutIn设置的该接口返回的超时的时间。hisinforpIn端口号和返回句柄等信息。databuffOut返回结果集头指针colattrpOut返回结果集各列信息指针colnumOut返回结果集组成列数recnumOut返回结果集组成行数errorOut犯错信息返回值Out1:成功;0:失败办理过程及返回值说明如果调用HisServiceClientInterface类需要向服务总线注册通信管道和端口信息。调用方法#include"hisclient.h"#include<vector>#include"stdio.h"#include<stdlib.h>剖析结果char*MyParseResultsForReadData(intrecnum,intattr_num,ColAttr_t*attrs,char*buf){char*pResult;pResult=newchar[recnum];for(inti=0;i<recnum;i++){pResult[i]=newchar*[attr_num];}intiOffset=0;for(inti=0;i<recnum;i++){for(intj=0;j<attr_num;j++){pResult[i][j]=newchar[attrs[j].data_size];memcpy(pResult[i][j],buf+iOffset,attrs[j].data_size);iOffset+=attrs[j].data_size;}}returnpResult;}释放剖析结果voidReleaseMyResultBuf(intrecnum,intattr_num,char*pResult){for(inti=0;i<recnum;i++){for(intj=0;j<attr_num;j++){delete[]pResult[i][j];}delete[]pResult[i];}delete[]pResult;}intmain(intargc,charargv){HisServiceClientInterfacehsci1;ServiceInfoinfo;serviceinfo.port=20009;hsci1.InitSocket(serviceinfo);DomainInfodomainInfo;memset(&domainInfo,0,sizeof(domainInfo));domainInfo.context=1;domainInfo.appno=100000;//scadastrcpy(domainInfo.domain,"华北网调");

//realtimestrcpy(domainInfo.servicename,"midhs");hsci1.SetDomainInfo(&domainInfo);intattr_num,recnum;ErrorInfoerror1;intretcode,items;HisInfo_structhisinfo;hisinfo.appsid=2;char*buf;ColAttr_t*attrs;retcode=hsci1.GetHisFromBaseUsingSingleSql("selectOCCUR_TIME_SEC,OCCUR_TIMECONTENTUS,fromALARM.WAMS_OSC_ALARMwhereoccur_time_sec>1298622547",10,hisinfo,&buf,&attrs,&attr_num,&recnum,&error1);printf("retcode=%d\n",retcode);if(retcode<0){cout<<"theerrornois"<<error1.error_no<<"andtheerrordescris"<<error1.error_info<<endl;}char

*data=NULL;int

i;data=MyParseResultsForReadData(recnum,attr_num,attrs,buf);if(data){for(i=0;i<recnum;i++){intoccur_time_sec,occur_time_us;charszComment[210];memcpy(&occur_time_sec,data[i][0],sizeof(occur_time_sec));memcpy(&occur_time_us,data[i][1],sizeof(occur_time_us));memset(szComment,0,sizeof(szComment));memcpy(szComment,data[i][2],100);printf("%d.%03d::%s\n",occur_time_sec,occur_time_us/1000,szComment);}ReleaseMyResultBuf(recnum,attr_num,data);}return0;}经过服务履行商用数据库命令,同步接口参数描绘IntHisServiceClientInterface::ExecHisBaseUseSingleSql(constchar*cmd_buff,\time_ttimeout,HisInfo_structhisinforp,ErrorInfo*error)表1-14接口参数输入/输出参数(返回值)说明备注ServiceInfo构造,包cmd_buffIn/Out括服务ip、端口号、底层服务分派句柄handle等信息。In因是同步,这是接口timeout设置的返回的超时时间。hisinfopIn/端口号和返回句柄等信息。返回值Out1:成功;0:失败办理过程及返回值说明接口将cmd_buff中的命令读取后传入商用数据库中间层的程序,递交到数据库服务器后等待返回值,中间层将返回信息传达到数据库服务器中。调用方法HisServiceClientInterfacehsci1;ServiceInfoinfo;serviceinfo.port=20009;hsci1.InitSocket(ServiceInfo&serviceinfo);charcmd_buff[1000];memset(cmd_buff,0,1000);char*databuff;char*colattrppintcolnum,recnum;ErrorInfoerror1;strcpy(cmd_buff,“updateaaaseta1=123whereb1=50”);intretcode;retcode=hsci1.ExecHisFromBaseUsingSingleSql(cmd_buff,\20,hisinforp,\&colnum,&recnum,&error1);调用曲线参数描绘intHisServiceClientInterface::GetCurveData(CurvePara¶m,time_ttimeout,CurveDatadatap,int&items,ErrorInfo&error)表1-15接口参数输入/输出参数(返回值)说明备注ParamIn/Out曲线端口信息构造。timeoutIn因是同步,这是接口设置的返回的超时时间。datapIn返回数据的指针items曲线应返回数据的个数返回值Out1:成功;0:失败办理过程及返回值说明根据param参数构造获得曲线数据。成功返回1,失败返回0。调用方法HisServiceClientInterfacehsci1;ServiceInfoinfo;serviceinfo.port=20009;hsci1.InitSocket(ServiceInfo&serviceinfo);charcmd_buff[1000];memset(cmd_buff,0,1000);char*databuff;char*colattrppintcolnum,recnum;ErrorInfoerror1;strcpy(cmd_buff,

“select*fromaaa

0”);intretcode,items;retcode=hsci1.GetCurveData(CurvePara¶m,20,CurveDatadatabu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论