力控○R 的实时数据库是一个开放的数据平台。用户可以利用数据库提供的接口,在该平台上进行二次开发,创建自己开发的应用程序(如:过程优化控制程序等)。

实时数据库提供的控件DbCom就是一种方便、高效的接口方式。

DbCom是一个标准OLE控件。用户在各种常用开发环境下(如:VC++、VB、VFP、DELPHI、FrontPage、C++ Build等)可以调用DbCom来访问数据库中的数据。

在安装力控○R 时,安装程序自动完成DbCom的安装与注册。

DbCom是一个在程的OLE控件,当您在应用程序中使用时,必须同时启动数据库DB(有关ActiveX的详细信息,请参考相关资料)。

功能

1、 通过DbCom可以访问本地数据库,也可以是网络上其它远程主机上的数据库。

2、 通过DbCom不但可以读取数据,而且可以设置数据。

3、通过DbCom不但可以读写数据,而且可以得到数据变化通知。当数据变化时,用户定义的方法将被触发。

3、 通过DbCom不但可以访问实时数据,而且可以检索历史数据。

配置

若访问本地数据库,需要启动本地数据库DB,并保证DbCom.ocx已注册成功;当访问远程数据库时,远程主机需要启动DB和NetServer。

属性

DbCom控件具有OLE控件的通用属性(与具体的编程环境有关)如:名字、高度、宽度等等。此外,它还提供与访问远程数据库相关的属性。下面列出各属性及含义: ServerName:用于指定远程主机的名称或IP地址,如果该项为空“”,那么控件将与本地数据库通讯。

Visible:用于指定控件在运行时的显示状态。为“真”时将显示数据库的内容,为“假”时控件将不可见。 TagPars:您所关心的数据的变量名称列表,如填写“LIC504.PV,LIC403.SP”。表示关心LIC504.PV和LIC403.SP值的变化,并且当LIC504.PV和LIC403.SP值的变化时方法OnDataChanged将被调用。您可以在OnDataChanged方法中编写相应的数据触发动作。

注意:参数间以“,”分隔,您可以在控件属性框中修改以上属性。

例如,上面的属性框内容设置表示:DB服务器地址为10.114.15.88,运行时控件不可见,关心fi101.pv,fi102.pv,fi103.pv数值的变化。

事件

目前DbCom提供了下述事件处理功能:

1、 OnDataChanged

语法 OnDataChanged(long Number , LPCTSTR Tagpar, const VARIANT FAR& data)

说明 数据变化通知。

参数 Number,长整型,变化的变量在属性TagPars中的顺序号,顺序号以“0” 开始,即第一个变量的顺序号为0。

TagPar,字符串,通知变化的变量名称。

data,VARIANT变量,变量的当前值。

返回值 备注数据变化在属性TagPars中指定,当数据发生变化时该方法将自动被调用。

方法

目前DbCom提供了以下几种特定的方法来访问数据库数据或监视状态。

2、 GetTagName

语法 BSTR GetTagName(long TagNo)

说明 根据顺序号得到变量名。

参数 TagNo 长整型,变量在变量表TagPars中的顺序号。

返回值 返回值为变量名称,类型为BSTR。若变量不存在,返回值将为空。

备注 变量的顺序号与其在变量表TagPars中的序号一致(序号从0开始)。

示例 Name = GetTagName(0);

2、 GetTagNum

语法 long GetTagNum(LPCTSTR TagPar)

说明 得到变量在变量表TagPars中的顺序号。

参数 TagPar 字符串变量名称。

返回值 返回值为顺序号,类型为长整型,-1表示变量在变量表TagPars中不存在。

备注 变量的顺序号与其在变量表TagPars中的序号一致(序号从0开始)。

示例 TagNo = GetTagNum("LIC504.PV");

3、 GetDataByNum

语法 VARIANT GetDataByNum(long TagNo)

说明 根据变量序号取得数据。

参数 TagNo,变量在变量表TagPars中序号,类型为长整型。

返回值 数据返回值为VARIANT变量,类型一般为VT_BSTR,如果失败,在返回串中为错误信息。

备注 该函数直接从本地数据区取得数据,开销较小。

示例 VARIANT var;

var = GetDataByNum(0);

4、 SetDataByNum

语法 BOOL SetDataByNum(long TagNo, const VARIANT FAR& Data)

说明 根据变量序号设置数据,该函数并不将数据送往数据库,要想设置到数据库必须调用Commit。

参数 TagNo,变量在变量表TagPars中序号,类型为长整型。

返回值 成功为1,否则为0。

失败原因可能为:

1)序号为TagNo的变量在变量表TagPars中不存在。

2)控件尚未与数据库建立通讯。

备注 1)调用该函数后必须再调用Commit后数据才真正送到数据库中。

2)可以多次调用SetDataByNum,然后调用一次Commit,这样效率最高。

示例 SetDataByNum(0,“1”);

SetDataByNum(1,“2”);

Commit();

5、 Commit

语法 BOOL Commit()

说明 将由SetDataByNum设置的数据送往数据库。

参数 无

返回值 成功为1,否则为0

失败原因可能为控件尚未与数据库建立通讯。

示例 Commit();

6、 GetRealData

语法 long GetRealData(long count,LPCTSTR strNames,double FAR * data)

说明 读取多点数据。

参数 count:个数。

strNames:参数名字符串,字符型变量。参数间以‘,'号分隔。

data: 双精度浮点(Double)型指针。返回的数据数组。

返回值 长整型,0成功,-1失败。

备注 用于批量得到数值型数据。

示例 GetRealData(2,"fi101.pv,fi102.pv",datas(0));(VB示例)

7、 SetRealData

语法 BOOL SetRealData(long nCount, LPCTSTR strNameDatas, double FAR * datas)

说明 批量设置数据。

参数 count:个数。

strNames:参数名字符串,字符型变量。参数间以‘,'号分隔。

data::双精度浮点(Double)型指针。设置数据数组。

返回值 长整型,0成功,-1失败。

备注 用于批量设置数值型数据。

示例 SetRealData(2,"TAG1.PV,TAG2.PV",datas(0));(VB示例)

8、 GetHisDatas

语法 long GetHisData(DATE tStartTime, DATE tEndTime, LPCTSTR strTagPars, long nTagCount, long nEachDataCount,double FAR * Data)

说明 读取历史数据。

参数 tStartTime:OLE时间(DATE),数据检索开始时间。

tEndTime:OLE时间(DATE),数据检索结束时间。

strTagPars:字符串, 点名列表。点名间以‘,'号分隔。

nTagCount:整型(4字节),请求点参数个数。

nEachDataCount:整型(4字节),请求数据个数。

Data: 双精度浮点(Double)型指针,返回的数据,同一点数据依次排放。

返回值 长整型,0成功,-1失败。

备注 总的历史数据个数为:nEachDataCount * nTagCount

9、SetStringData

语法 long SetStringData(long nCount, VARIANT FAR* pvTagPars, VARIANT FAR* pvData)

说明 根据变量名称(pvTagPars)和变量值(pvData)设置数据库。

参数 参数名称 类型 说明

nCount long 变量个数

pvTagPars VARIANT数组 nCount个变量名称

pvData VARIANT数组 nCount个变量值

返回值 成功为0,否则为非0。

失败原因可能为:

1)pvTagPars中的参数名在数据库中不存在。

2)控件尚未与数据库建立通讯。

备注 1)pvTagPars、pvData的个数必须和nCount指定的数目相同。

2)pvTagPars和pvData的内容按照数组下标一一对应。

10、GetStringData

语法 long GetStringData(long nCount, VARIANT FAR* pvTagPars, VARIANT FAR* pvData)

说明 根据变量名称(pvTagPars)获得变量值(pvData)。

参数 参数名称 类型 说明

nCount long 变量个数

pvTagPars VARIANT数组 nCount个变量名称

pvData VARIANT数组 nCount个变量值

返回值 成功为0,否则为非0。

失败原因可能为:

1)pvTagPars中的参数名在数据库中不存在。

2)控件尚未与数据库建立通讯。

备注 1)pvTagPars、pvData的个数必须和nCount指定的数目相同。

2)必须首先设置pvData的数组个数和数据类型为VT_BSTR,字符长度为64字节。

3)pvTagPars和pvData的内容按照数组下标一一对应。

11、GetAllTagCount

语法 long GetAllTagCount()

说明 获得数据库中点的总个数。

参数 无

返回值 成功为数据库中点的个数,否则为<=0 。

失败原因可能为:

控件尚未与数据库建立通讯。

12、GetAllTagName

语法 long GetAllTagName(VARIANT FAR* pvTagName)

说明 获得数据库中所有点的名称。

参数 参数名称 类型 说明

pvTagName VARIANT数组 个变量值

返回值 成功为0,否则为非0。

失败原因可能为:

1)pvTagPars中的参数名在数据库中不存在。

2)控件尚未与数据库建立通讯。

备注 1)和GetAllTagCount一起使用,pvTagName数组个数为GetAllTagCount函数返

回值。

2)在调用前首先设置pvTagName的数组个数和数据类型为VT_BSTR,字符长度为

32字节。

13、GetTagType

语法 long GetTagType(LPCTSTR szTagName)

说明 获得指定点的类型。

参数 参数名称 类型 说明

szTagName 字符串 点名称

返回值 成功为这个点的类型编号,都>=0,否则为-1。

失败原因可能为:

1)szTagName在数据库中不存在。

2)控件尚未与数据库建立通讯。

备注 类型编号的含义:

0, 模拟I/O点;1,数字I/O点;2,累计点;

3,控制点; 4,运算点; 5,组合点。

14、GetTagParCount

语法 long GetTagParCount(LPCTSTR szTagName)

说明 获得指定点(szTagName) 的参数个数。

参数 参数名称 类型 说明

szTagName 字符串 点名称

返回值 成功为该点的参数个数,否则为<=0。

失败原因可能为:

1)szTagName在数据库中不存在。

2)控件尚未与数据库建立通讯。

15、GetTagParName

语法 long GetTagParName(LPCTSTR szTagName, VARIANT FAR* pvTagParName)

说明 根据变量名称(szTagName)获得这个变量的所有参数名称(到 pvTagParName)。

参数 参数名称 类型 说明

szTagName 字符串 变量名称

pvTagParName VARIANT数组 nCount个参数名称

返回值 成功为0,否则为非0。

失败原因可能为:

1)szTagName中的参数名在数据库中不存在。

2)pvTagParName分配的数组不正确。

备注 1)和GetTagParCount一起使用,pvTagParName数组个数为GetTagParCount函数

返回值。

2)在调用前首先设置pvTagParName的数组个数和数据类型为VT_BSTR,字符长度

为32字节

力控访问mysql_力控DBCOM的使用方法相关推荐

  1. ASP.NET 母版页(嵌套、访问母版页的控件和属性)

    文章目录 @[toc] 一.母版页的嵌套 二.访问母版页的控件和属性 1.使用Master.FindControl()方法访问母版页上的控件 2.引用@MasterType指令访问母版页上的属性 友情 ...

  2. asp.net学习之 数据绑定控件--List数据绑定控件

    List控件(如 CheckBoxList.DropDownList.ListBox 和 RadioButtonList 类)继承自ListControl类,不能直接创建 ListControl 抽象 ...

  3. 学习笔记---母板页、用户控件、第三方控件及视图状态管理

    一.母版页 在制作页面的过程中, 多个页面往往具有相同的页面Header和页面Footer, 多个页面只是在中间部分有变化. 那么我们完全可以避免在每个页面中都写一遍页头和页尾的代码, 这种技术就是母 ...

  4. VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上)

    前面两节为大家讲了列表视图控件List Control,这一节开始介绍一种特殊的列表--树形控件Tree Control. 树形控件简介 树形控件在Windows系统中是很常见的,例如资源管理器左侧的 ...

  5. scenebuilder各控件属性介绍_C#控件及常用设计整理(三)

    C#控件及常用设计整理(三) 12.CheckedListBox 控件 CheckedListBox控件又称复选列表框,它扩展了ListBox控件,它几乎能完成列表框可以完成的所有任务,并且还可以在列 ...

  6. 驰骋工作流引擎表单设计控件-字段类控件(2)

    2019独角兽企业重金招聘Python工程师标准>>> Technorati Tags: 开源工作流引擎, 驰骋.net工作流引擎, 开源表单引擎, ccform, ccflow, ...

  7. 一步一步实现自己的模拟控件(6)——控件树及控件区域

    控件树 一步一步实现自己的模拟控件(1)中的图上我们可以看到,我们的控件体系其实就是一个控件树.每一个窗口关联一个根控件,所有控件都在这个根控件之下,父控件包容并管理子控件,那么我们的Widget就应 ...

  8. Python Tkinter教程(二)——Label控件、Frame控件、Button控件的完整参数和所有方法及详细用法

    >>>[上节回顾:tkinter编程基本步骤.窗口基本属性及Toplevel控件的使用]<<< Python Tkinter教程(二)         这篇博客将详 ...

  9. ASP.NET之Panel控件、FileUpload 控件

    Panel控件: Panel控件是一个容器控件,可以将它用作静态文本和其他控件的父级. 它有如下常见属性: 属性 类型 说明 BackImageUrl string 规定显示控件背景的图像文件的 UR ...

最新文章

  1. LINUX 第五章 apache php mysql
  2. 解剖SQLSERVER 第四篇 OrcaMDF里对dates类型数据的解析(译)
  3. JSP页面取当前日期 oracle导入导出 branch与tag
  4. Activiti中具有单独数据库模式的多租户
  5. 怎么更换默认路径_更改电脑桌面路径
  6. mt4 指标 涨跌幅 颜色k线_Tick级别K线显示指标
  7. iOS 开发-单元测试
  8. 物体抓取位姿估計算法綜述_3D视觉技术在机器人抓取作业中的应用
  9. 前端学习之touch.js与swiper学习
  10. css base64 图片背景
  11. linux可执行文件bad interpreter解决方法
  12. 企业微信打标签功能在企鲸客SCRM管理系统里面的作用
  13. nods中mysql时间相差8小时
  14. 嵌入式实操----基于RT1170 移植mbw做SDRAM带宽测试(三十一)
  15. This is probably not a problem with npm. There is likely additional logging 报错
  16. vue 项目中 自动生成 二维码
  17. Centos7.4.1708 安装usb无限网卡驱动
  18. 半音阶口琴膜片翘起来怎么处理?
  19. Google PR值的详细分析及计算公式
  20. 西门子博途v16系统要求_西门子正式发布博途V16(内含百度云盘下载地址)

热门文章

  1. Kaldi 实战学习(1)说话人识别小例子(egs/aishell/v1)
  2. 目标检测:SSD和DSSD算法的对比分析
  3. JavaScript 获取每月最大的天数
  4. 2023最新Android 车载系统开发教程,车载开发入门
  5. 推荐一款Linux本。
  6. 录制讲解PPT的视频
  7. 【论文速递】CVPR2022 - 全局跟踪Transformers
  8. Java8计算时间差
  9. vim使用大全[转]
  10. 股票交易android开发(十二)