用户中心
· 企业空间 首页 | 资讯 | 技术 | 产品 | 企业 | 直播 | 专题 | 智能制造 | 论坛| 在线研讨会
紫金桥软件技术有限公司
企业空间 > 案例应用 > 正文
  • 紫金桥组态软件与关系数据库之间数据存储与调取的应用
  • 发布时间:2013/8/2 14:25:32   修改时间:2013/8/2 14:25:32 浏览次数:1291
  •    随着控制系统功能的增强与多系统之间数据共享需求的增大,组态软件与关系数据库之间的通讯也愈加频繁,二者之间的数据共享也变得越来越重要。随着业务需求的逐渐增大,怎样将复杂的通讯与功能实现简单化也成为了众多商家的一个重要竞争点。为方便广大用户,紫金桥组态软件特推出一新的功能组件——ObDataTable,通过该组件,用户可以很简单的实现紫金桥组态软件与关系数据库的数据共享。组件ObDataTable作为中间媒介,将紫金桥组态软件中的自由报表与关系数据库按照一定的关系连接起来。

                               图1 数据流向关系
        对于一些复杂的综合报表,报表中的数据来源或者去向并不统一。比如我们把数据划分为好几个区域,区域A中的数据要存储到表A中,区域B中的数据要存储到表B中等等。按照通常的方法,会通过紫金桥内的SQL函数写一些脚本将数据存到关系库中,但是这样的方法比较复杂,且代码量通常都比较大,编写起来比较麻烦,而现在通过组件ObDataTable将会把工作简单化,下面讲解具体实现方法。
    在讲解实现方法时,先介绍一下四个函数:
    1、GetFromTable(),此为自由报表函数,函数功能为从ObDataTable中获得数据。
    2、SetToTable(),此为自由报表函数,函数功能为将数据放置到ObDataTable中。
    3、SQLGetToTable(),此为紫金桥内部SQL函数,函数功能为将数据集中全部数据复制到ObDataTable中。
    4、QLInsertFromTable(),此为紫金桥内部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的出现,使紫金桥组态软件与关系库的通讯不在像以往那样繁琐,且功能实现简单,用户通过少量的脚本即可实现预想的功能,避免了大量的编写脚本时存在的潜在错误,方便广大用户操作使用。

  • 企业介绍
紫金桥软件技术有限公司(RealSoft)是由中石油出资成立的专门从事计算机软件产品开发的高新技术企业,是中国石油天然气集团的软件开发基地。公司专注于自主知识产权软件产品“实时数据库系统”和“监控组态软件”的开发与推广工作,以为企业集团及客户…  更多>>
  • 联系方式

紫金桥软件技术有限公司

联系人:李磊

地址:黑龙江省大庆市高新区服务外包产业园C1-817室

邮编:163316

电话:400-6996-515

传真:0459-8151391-808

公司网址:http://www.realsoft.cc

  • 该空间手机版

扫描此二维码即可访问该空间手机版

  • 在线反馈
1.我有以下需求:



2.详细的需求:
姓名:
单位:
电话:
邮件:
您还没有登录,请登陆,
如果您还没有注册,点击这里注册.
  • 网友反馈
  • 戴永铁 在2024/6/11 14:51:00留言
  • 留言类型:贵公司产品销售人员联系我,贵公司技术支持人员联系我,
  • 详细留言:需要制药工业领域的实时库报表,包含矩阵配?、参数配方、数据(统计和历史)、曲线、事件、报警、审计追踪,这些内容可以组态化
  • 晓同 在2024/5/16 11:06:00留言
  • 留言类型:我让贵公司产品销售人员联系我,
  • 详细留言:紫金桥组态软件V6.5,512点授权
  • 在2023/10/21 16:03:00留言
  • 留言类型:贵公司技术支持人员联系我,
  • 详细留言:OPC
  • 郑鑫汶 在2023/6/1 14:58:00留言
  • 留言类型:我想得到贵公司产品详细资料,我想得到贵公司产品的价格信息,我让贵公司产品销售人员联系我,我让贵公司技术支持人员联系我,
  • 详细留言:需要咨询贵公司软件的价格功能
  • 吴吉校 在2023/3/15 7:45:00留言
  • 留言类型:我想得到贵公司产品详细资料,我想得到贵公司产品的价格信息,我让贵公司产品销售人员联系我,我让贵公司技术支持人员联系我,
  • 详细留言:组态软件咨询
更多请进入空间管理中心查看
关于我们 | 网站地图 | 联系我们
© 2003-2018    经营许可编号:京ICP证120335号
公安机关备案号:110102002318  服务热线:010-82053688
我要反馈