您现在的位置:智能制造网>技术中心>紫金桥组态软件与关系数据库之间数据存储与调取的应用

直播推荐

更多>

企业动态

更多>

推荐展会

更多>

紫金桥组态软件与关系数据库之间数据存储与调取的应用

2013年08月23日 08:43:38人气:706来源:紫金桥软件技术有限公司


       随着控制系统功能的增强与多系统之间数据共享需求的增大,组态软件与关系数据库之间的通讯也愈加频繁,二者之间的数据共享也变得越来越重要。随着业务需求的逐渐增大,怎样将复杂的通讯与功能实现简单化也成为了众多商家的一个重要竞争点。为方便广大用户,紫金桥组态软件特推出一新的功能组件——ObDataTable,通过该组件,用户可以很简单的实现紫金桥组态软件与关系数据库的数据共享。组件ObDataTable作为中间媒介,将紫金桥组态软件中的自由报表与关系数据库按照一定的关系连接起来。
 
                                                         图1 数据流向关系
        对于一些复杂的综合报表,报表中的数据来源或者去向并不统一。比如我们把数据划分为好几个区域,区域A中的数据要存储到表A中,区域B中的数据要存储到表B中等等。按照通常的方法,会通过紫金桥内的SQL函数写一些脚本将数据存到关系库中,但是这样的方法比较复杂,且代码量通常都比较大,编写起来比较麻烦,而现在通过组件ObDataTable将会把工作简单化,下面讲解具体实现方法。
      在讲解实现方法时,先介绍一下四个函数:
1、 GetFromTable(),此为自由报表函数,函数功能为从ObDataTable中获得数据。
2、 SetToTable(),此为自由报表函数,函数功能为将数据放置到ObDataTable中。
3、 SQLGetToTable(),此为紫金桥内部SQL函数,函数功能为将数据集中全部数据复制到ObDataTable中。
4、 SQLInsertFromTable(),此为紫金桥内部SQL函数,函数功能为将ObDataTable中数据插入到数据库中。
 
                                                           图2 报表区域划分说明
      如上图所示,该报表划分为三个区域。首先,要在关系库中建立三个表,分别为表A,表B,表C。按照报表中三个区域的规格建立相应的字段,注:关系库表中的字段数,类型要与报表中的*对应。
其次,编写数据存入与读取脚本。在向关系库插入数据时分为两个步骤:
       一、 将报表中的数据存入到ObDataTable中。期间调用函数报表函数SetToTable(),该函数能够报表中的区域,如选择的为区域A,函数执行过后,区域A中的数据则会全部存入到ObDataTable中。如:#FreeReport1.SetToTable(1,1,7,10,#ObDataTable,0)。函数意为将自由报表FreeReport1的区域1至7列,1至10行的数据全部存入到ObDataTable中。
       二、 将存入到ObDataTable中的数据写入到关系库的表中。期间调用函数SQLInsertFromTable(),该函数执行过后将会将ObDataTable中的数据写入到关系库中相应的表中。该函数执行之前要调用SQLConnect()函数。如:
int ConnectID;
SQLConnect((ConnectID,”数据源描述”);
SQLInsertFromTable(ConnectID,"表A",#ObDataTable1);
其中ConnectID为执行SQLConnect()之后的数据源表示返回值。数据源描述需要人为的填写。
这两步操作之后,区域A中的数据则会全部写入到关系库表A中。
       从关系库中读取数据时同样也分为两个步骤:
一、 将关系库表中的数据读取到ObDataTable中。期间要调用函数SQLGetToTable(),该函数要与SQLSelect()函数配合使用。首先要将关系库表中符合条件的数据通过SQLSelect()函数查出来,在通过SQLGetToTable()函数写入到ObDataTable中。如:
int ConnectID;
SQLConnect((ConnectID,”数据源描述”);
SQLSelect(ConnectID,"表A","查询条件表达式");
SQLGetToTable(#ObDataTable1);
二、 将ObDataTable中的数据写入到自由报表中。期间要调用自由报表函数GetFromTable(),该函数可以将ObDataTable中的数据写入到自由报表中的区域。
如:#FreeReport1.GetFromTable(1,1,#ObDataTable1,0);函数意为将ObDataTable中的数据写入到自由报表从*行,*列开始的区域中。
这两步操作过后,关系库表A中符合查询条件的数据则会写入到自由报表区域A中。区域B,区域C的同理。
        ObDataTable的出现,使紫金桥组态软件与关系库的通讯不在像以往那样繁琐,且功能实现简单,用户通过少量的脚本即可实现预想的功能,避免了大量的编写脚本时存在的潜在错误,方便广大用户操作使用。
 

全年征稿/资讯合作 联系邮箱:1271141964@qq.com

免责声明

  • 凡本网注明"来源:智能制造网"的所有作品,版权均属于智能制造网,转载请必须注明智能制造网,https://www.gkzhan.com。违反者本网将追究相关法律责任。
  • 企业发布的公司新闻、技术文章、资料下载等内容,如涉及侵权、违规遭投诉的,一律由发布企业自行承担责任,本网有权删除内容并追溯责任。
  • 本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品来源,并自负版权等法律责任。
  • 如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

<
更多 >

工控网机器人仪器仪表物联网3D打印工业软件金属加工机械包装机械印刷机械农业机械食品加工设备制药设备仓储物流环保设备造纸机械工程机械纺织机械化工设备电子加工设备水泥设备海洋水利装备矿冶设备新能源设备服装机械印染机械制鞋机械玻璃机械陶瓷设备橡塑设备船舶设备电子元器件电气设备


我要投稿
  • 投稿请发送邮件至:(邮件标题请备注“投稿”)1271141964.qq.com
  • 联系电话0571-89719789
工业4.0时代智能制造领域“互联网+”服务平台
智能制造网APP

功能丰富 实时交流

智能制造网小程序

订阅获取更多服务

微信公众号

关注我们

抖音

智能制造网

抖音号:gkzhan

打开抖音 搜索页扫一扫

视频号

智能制造网

公众号:智能制造网

打开微信扫码关注视频号

快手

智能制造网

快手ID:gkzhan2006

打开快手 扫一扫关注
意见反馈
关闭
企业未开通此功能
详询客服 : 0571-87858618