行业垂直门户网站

设为首页 | 加入收藏

您当前的位置:北极星智能电网在线 > 正文

专利|一种用于微电网监控系统的数据库通用访问实现方法(2)

北极星智能电网在线  来源:北极星智能电网在线整理    2017/3/29 8:55:47  我要投稿  

主要数据库访问接口函数如下

连接和断开数据库:

bool Open(const *i_pszSrv ,const *i_pszUser ,const *i_pszPwd);

bool Open(const *i_pszSrv,const *i_pszIpAddr,const *i_pszDBName,const *i_pszUser,const *i_pszPwd,const *dbType);

void Close(bool bClose=true);

判断数据库是否打开:

bool IsOpen( )const{return m_bOpen;}

获取数据库类型:

int GetDBType( )const{return m_nDBType;}

获取数据源名字:const *GetDBName( )const{return m_qsSrcName.GetBuf( );}

执行SQL语句:

bool ExecuteSQL(const *i_pszSqlStr);

int Exec( );

判断数据表是否存在

bool IsTableExist(const *i_szTableName);

获取错误号和错误字符串:

int GetErrorNo( );

const *GetErrorStr( );

准备SQL语句:

bool PrepareSQL(const *i_pStringSQL);

关闭本次SQL处理:

void CloseSQL( );

绑定列:

bool BindCol(int i_nColType,int i_nColSize,void*i_pColAddr);

绑定参数:

bool BindPara(int i_nParaType,int i_nParaSize,void*i_pParaAddr);

获取查询结果:

bool Fetch( );

是否到了记录尾:

bool IsEnd( );

开始事务操作:

bool BeginTrans( );

递交事务:

bool Commit( );

回滚事务:

bool Rollback( );

第二步:在数据库通用访问类CQSDBI中定义各个数据库类型通用的通用插件函数。然后在对外开放的public成员函数中分别调用上述通用插件函数,即,每一种数据库类型对应实现一个动态链接库,在库中实现各自的通用插件函数。 在CQSDBI的Open函数中,根据传入的数据库类型,加载这些动态链接库,把上述通用插件函数匹配到每一种独立数据库类型的接口函数。

这些通用插件函数定义如下:

void*(*qs_open)(const * ,const * ,const * ,const * ,const*);

void(*qs_close)(const void* ,bool);

bool(*qs_execute_sql)(const void* ,const *);

bool(*qs_is_table_exist)(const void* ,const *);

int(*qs_get_error_no)(const void*);

const *(*qs_get_error_str)(const void*);

bool(*qs_prepare_sql)(const void* ,const *);

void(*qs_close_sql)(const void*);

bool(*qs_bind_col)(const void* ,int,int,void*);

bool(*qs_bind_para)(const void* ,int,int,void*);

int(*qs_exec)(const void*);

bool(*qs_fetch)(const void*);

bool(*qs_is_end)(const void*);

bool(*qs_begin_trans)(const void*);

bool(*qs_commit)(const void*);

bool(*qs_rollback)(const void*);

第三步:确定并实现Oracle数据库插件类CQSOracleDBI。根据Oracle数据库自带的Oracle调用接口函数(Oracle Call Interface简称OCI)的要求,实现类似上述CQSDBI的通用插件函数与插件函数的匹配。

第三步:确定并实现SQL Server数据库插件类CQSSqlserver。本发明选用ODBC的技术要求,实现类似上述CQSDBI的通用插件函数与插件函数的匹配。

第四步:确定并实现My SQL插件类CQSMysqlDBI。根据My SQL数据库提供的API访问接口,实现类似上述CQSDBI的通用插件函数与插件函数的匹配。

第五步:确定并实现My SQL插件类CQSSybaseDBI。根据Sybase数据库提供的API访问接口,实现类似上述CQSDBI的通用插件函数与插件函数的匹配。

第六步:确定并实现文件方式插件类CQSFi leDB。选用csv文件格式存储数据,根据文本文件的一般读写方式结合QT库,实现类似上述CQSDBI的通用 插件函数与插件函数的匹配。

本发明实现了上述数据库类型的统一操作,针对其他数据库类型,可以做类似的扩展予以支持,实现了微电网监控系统访问数据库时,可以不必关心具体的操作系统平台与数据库类型,只需简单调用通用数据库访问类的各个数据库访问接口函数即可完成。具体针对每一种数据库的接口实现,由底层插件完成。这样大大降低了上层软件编程的复杂度,具有很好的通用性和稳定性。另外,本发明还支持有效扩展,对暂未包含在插件中的数据库类型,可以根据通用数据库访问类接口的要求逐一实现,具备良好的扩展性

以上所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

分享到:
北极星投稿热线:陈女士 13693626116 邮箱:chenchen#bjxmail.com(请将#换成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。

热点关注
国网826号文解读

国网826号文解读

昨天国网公司下发了《关于进一步严格控制电网投资的通知》(国家电网办【2019】826号文)。文中提出了“三严禁、二不得、二不再”的投资建设思路。个人认为,这不仅仅是一个文件,而是国网公司整体发展战略转型的一个标志。作为世界上最大的电网企业,国网公司每年因投资建设所需的采购数额巨大,对电

--更多
最新新闻
新闻排行榜

今日

本周

本月

深度报道
相关专题

关闭

重播

关闭

重播