SQL Access Manager简介
- SQL Access Manager是Intouch的可选组件。可以使用SQL Access Manager来传输数据,例如从SQL数据库到InTouch应用程序的批处理配方。还可以使用SQL Access Manager将运行时数据、警报状态或历史数据从InTouch应用程序传输到数据库。SQL Access Manager由一个程序和一组SQL函数组成。SQL Access Manager程序创建数据库列并将其与InTouch标记通过绑定列表关联起来。绑定是将数据库列关联到InTouch标记的过程。绑定允许您使用SQL Access Manager直接管理存储在数据库中的InTouch数据。
- 要点
- SQL Access Manager函数可以在脚本中使用,脚本可以根据操作符输入、标记值更改或存在一组特定条件时自动运行。这些函数允许您选择、修改、插入或删除要访问的表中的记录。
- SQL Access Manager将数据库字段名及其关联保存在一个名为SQL. def的逗号分隔的变量文件中。
- SQL Access Manager还创建表模板,定义InTouch HMI使用的数据库的结构和格式。
Part01-使用Intouch中的SQL数据库
数据库将信息存储在共享公共属性或字段的表中。结构化查询(SQL)是用于以查询的形式访问信息的语言。SQL Access Manager允许使用查询访问、修改、创建和删除数据库表。
使用InTouch QuickScript编辑器在QuickScript中插入SQL函数。将SQL函数插入脚本的一般过程包括以下步骤:
将SQL函数添加到脚本
1.启动InTouch WindowMaker。
2.用QuickScript编辑器打开QuickScript。
3.将光标放在要插入SQL函数的脚本中。
4.在“功能”区域,单击“外接程序”以显示“选择功能”对话框。
5.单击要插入到QuickScript中的SQL函数。脚本将更新并显示插入的SQL函数。
插入函数
打开全部函数面板
可以使用SQL Access Manager来传输数据,例如从SQL数据库到InTouch应用程序的批处理配方。还可以使用SQL Access Manager将运行时数据、警报状态或历史数据从InTouch传输到数据库。例如,在完成一个机器周期之后,公司希望保存几组数据,每组数据用于不同的应用程序。
SQL数据库提供了在一个或多个第三方应用程序之间轻松传输信息的能力。
SQL Access Manager允许在任何InTouch应用程序中访问和显示这些数据。
SQL Access Manager由一个程序和一组SQL函数组成。SQL Access Manager程序创建数据库列并将其通过绑定列表与InTouch标记关联起来。关联数据库列和InTouch数据库标记的过程称为绑定。将
InTouch数据库标记绑定到数据库列允许SQL Access Manager直接操作存储在数据库中的InTouch数据。SQL Access Manager将数据库字段名及其关联保存在一个名为SQL.def的逗号分隔的变量文件中。此文件位于InTouch应用程序文件夹中,可以使用SQL Access Manager或任何文本编辑器(如记事本)查看或修改。SQL Access Manager还创建表模板,定义InTouch使用的数据库的结构和格式。可以在脚本中使用SQL函数,根据操作符输入、标记值更改或存在一组特定条件时自动运行SQL函数。这些函数允许您选择、修改、插入或删除要访问的表中的记录。例如,如果存在警报条件,应用程序可以运行包含SQLInsert()或SQLUpdate()函数的脚本,这些函数保存所有适用的数据点和警报状态。
Part02-将Intouch标记名映射到数据库列
可以将InTouch标记通过绑定列表映射到数据库列,大多数SQL访问函数使用绑定列表来启用InTouch标记来访问SQL数据库表中的数据。
绑定列表将数据库表列与InTouch Tagname字典中的标记关联起来。绑定列表还包括一个表模板,用于描述数据库表的格式并批量建表。
Intouch与SQL Server数据库的绑定列表映射
当您运行一个包含SQLInsert()、SQLSelect()或SQLUpdate()函数的脚本时,Bind列表将被更新,以指定使用哪些InTouch标记以及哪些表列与这些标记相关联。
创建一个新的绑定列表:
1.在专用菜单上,指向SQL Access Manager,然后单击Bind List。消息请求确认以创建SQL.DEF文件
2.单击Yes创建SQL.DEF文件,出现“选择绑定列表”对话框
3.单击New“绑定列表配置”对话框出现
4.在“绑定列表名称”框中,键入“绑定列表名称”,绑定列表名称最多可以有32个字符
5.要定义绑定,列表的标签,请执行以下操作之一:
- 在标签名中,输入一个InTouch标记名。还可以在表单中添加可选标记dotfield
- 双击Tagname选择一个现有的标签,出现“选择标记”对话框。从列表中选择一个标记
注意:I/O类型标记在应用程序中不使用,但在SQL访问绑定列表中指定,一旦WindowViewer启动就会被激活(建议DAServer)
6.选择要在标记后面添加以下内容之一的点域:
- 在标签名中,在“FieldName”框中,键入句点并在标记名称后键入点域名称
- 单击字段名,将出现“选择字段名称”对话框。单击要附加到标记的点域
7.在“列名”框中,键入列名。列名的长度可以达到30个字符。如果列名有空格,则在绑定列表中列名周围和在脚本中使用时使用方括号。例如:其中EXPR= "[Valve ID] = " + text (tagname,"#");
8.在绑定列表中定位标签,方法如下:
- 单击“向上移动”将选中的标签在列表中上移一级
- 点击“向下移动”,将选中的标签在列表中向下移动一层
9.单击“添加项”添加新标记名。绑定列表的字段名和列名。
10.单击OK保存新的绑定列表配置并关闭对话框。
新建绑定列表
Part03-Intouch定义新表结构
表模板定义:在数据库中创建的新表的结构和格式,表模板存储在SQL.DEF文件中,和绑定列表在一个文件里面。
创建一个新的表模板
1.在专用菜单上指向SQL Access Manager,然后单击Table Template
2.单击New,出现“表模板配置”对话框
3.在“表格模板名称”框中,键入表格模板的名称。一个没有索引的表模板名最多可以有32个字符。如果要创建索引(惟一或其他),表模板名必须不超过24个字符
4.在“列名”框中,键入表模板的列名。一个列名最多可以有30个字符
5.在“列类型”框中,键入列的数据类型。数据类型的选择根据所使用的数据库的不同而不同
6.在索引类型区域,选择以下选项之一:
- 惟一性:每个列值必须是惟一的。
- 非唯一:不要求每个列值都是唯一的。
- None:无索引
注意:当您运行一个包含SQLCreateTable()函数的脚本时,将自动创建一个索引文件。
7.选择Allow Null Entry允许在该列中输入Null数据。
注意:InTouch不支持空数据。
新建Intouch数据库模板
在插入数据时,如果没有为标记输入值,则根据标记的类型分配null值。
Data Type Value
Discrete 0
Integer 0
Message Strings with no characters
8.单击Add Item将新列名、列类型、长度和索引类型添加到表模板。
9.单击OK保存新表模板配置并关闭对话框。
修改表模板
1.在专用菜单上,指向SQL Access Manager,然后单击Table Template。出现“选择表模板”对话框。
2.选择要修改的表模板名,然后单击modify。出现“表模板配置”对话框。
3.修改要求的项目。
4.单击OK保存您的更改并关闭对话框。
要删除表模板
1.在专用菜单上,指向SQL Access Manager,然后单击Table Template。出现“选择表模板”对话框。
2.选择要删除的表模板名。
3.单击“删除”。出现一条消息,请求确认删除表模板。
4.点击Yes。“表模板配置”对话框重新出现。
5.点击OK关闭对话框。
Part04-在Intouch中执行常见的SQL操作
Version:1.0 StartHTML:000000379 EndHTML:000680249 StartFragment:000676443 EndFragment:000680181 StartSelection:000676443 EndSelection:000680181 SourceURL:https://mp.weixin.qq.com/s?__biz=Mzg3NzEwMzY5Nw==&mid=2247485122&idx=1&sn=bdb0c4bc329265be52c63f245225865f&chksm=cf2959fcf85ed0ea61ce5d99e26746778db61182cd43b157a6d7822ca76cae97ae0f08a24cb2&token=834096618&lang=zh_CN
InTouch使用SQL访问函数与存储在数据库中的信息进行交互。这些SQL访问函数使您能够编写选择、修改、插入或删除数据库记录的脚本。SQL操作是同步的。当从InTouch应用程序运行数据库QuickScript时,控件不会返回InTouch,直到函数请求的数据库操作完成。当在引号包围的脚本字符串(“Arg1”)中输入参数时,将使用该字符串。如果没有使用引号,则将参数值假定为标记名,并且标记的当前值与该参数相关联。大多数SQL函数返回结果代码。如果结果代码是非零的,则函数失败,并应采取其他操作。
SQLErrorMsg()函数返回报错信息
与SQL访问函数相关的参数包括:
•BindList:对应于SQL中定义的绑定列表SQL.DEF文件名称。
•ConnectionID:参数引用一个内存整数标记的名称,该标记保存SQLConnect()函数分配给每个数据库连接的编号(ID)。
•ConnectStringConnectString:识数据库系统和任何其他登录信息。输入的格式如下:
"DSN=data source name[;attribute=value
[;attribute=value]...]"
Microsoft SQL Server连接字符串
• Microsoft OLE DB Provider for SQL Server (推荐使用).
"Provider=SQLOLEDB.1;User ID=sa; Password=;Initial Catalog=MyDB;Data Source=MyServer;"
The OLE DB Provider for SQL Server is sqloledb.
• Microsoft OLE DB Provider for SQL Server (推荐使用)
"Provider=SQLOLEDB.1;uid=sa;pwd=;Database=MyDB"
• Microsoft OLE DB Provider for ODBC (使用默认的SQL Server提供者 MSDASQL):
"DSN=Pubs;UID=sa;PWD=;"
• Microsoft OLE DB Provider for ODBC (使用默认的SQL Server提供者 MSDASQL):
"Data Source=Pubs;User ID=sa;Password=;"
连接SQL Server数据库语句
Microsoft Access连接字符串
Microsoft OLE DB Provider for Microsoft Jet (推荐使用). Micro 是Microsoft Jet (Microsoft Access数据库引擎)的本地OLEDB提供商。
"Provider=Micro;Data Source=d:\DBName.mdb;User ID=UserIDStr;Password=PasswordStr;"
Microsoft OLE DB Provider for ODBC (使用默认的MS Access提供者 MSDASQL):"Provider=MSDASQL;DSN=DSNStr;UID=UserName; PWD=PasswordStr;"
连接ACCESS数据库语句
Part05-Intouch SQL Access Manager案例
新建数据库
输入数据库名:ReportDB,确定
生成数据库
绘制数据库界面:
连接数据库
监控数据库连接的状态
断开数据库
新建绑定列表:Bind1,Intouch标记名为:Tag01,Tag02,Tag03,Tag04,Tag05,Tag06,Tag07,Tag08
创建表模板:Template,表字段(列名)为:Tag01,Tag02,Tag03,Tag04,Tag05,Tag06,Tag07,Tag08
新建数据库表:tbTag
查询数据库表所有数据:
查询数据库表第一行数据:
查询数据库表当前行的上一条数据:
查询数据库表当前行的下一条数据:
查询数据库表最后一行数据:
删除数据库表
写入一条数据
修改当前行数据
运行画面,连接数据库
点击新建表,则数据库自动生成一张新表
写入多条数据后,可以查询所有想要查的数据