1、第18章 数据库访问SQL第十八章 数据库访问SQL18.1 概述KingSCADA SQL访问功能实现KingSCADA和其他外部数据库(通过ODBC访问接口)之间的数据传输。它包括SQL访问管理器和相关的SQL函数。KingSCADA SQL访问管理器用来建立数据库列和KingSCADA变量之间的联系,包括“表格模板”和“记录体”两部分。通过表格模板在数据库表中建立相应的表格,通过记录体建立数据库字段和KingSCADA变量之间的联系。同时还可以通过SQL相关函数直接操作数据库中的数据。18.2 SQL访问管理器KingSCADA SQL访问管理器在工程设计器的树型目录中,如图所示:图18
2、-1 SQL访问管理器SQL访问管理器包括两部分:表格模板和记录体。下面将具体介绍这两部分。18.2.1 表格模板在表格模板中建立数据库表格的结构,即数据库表格中有哪些字段、字段的名称、字段的类型、字段的长度等信息。表格模板配置过程如下:第一步:创建表格模板在KingSCADA工程设计器的树型目录中选择“通用数据源”“ODBC数据源”“表格模板”选项,在右侧编辑区中单击“新建”按钮弹出对话框,如图所示:图18-2 表格模板编辑对话框第二步:编辑表格模板模板名称:设置表格模板的名称,长度不超过32个字符且唯一。模板描述:该模板的注释信息,长度不超过64个字符。字段名称:字段是用于定义数据库表格的
3、一个列,此项是设置字段的名称,长度不超过32个字符。数据类型:设置字段的类型,根据需要在下拉列表框中选择相应的类型。索引类型:索引功能是数据库用于加速字段中搜索与排序的速度,也可能使更新速度变慢,根据需要在下拉列表框中选择相应的类型,包括唯一索引、非唯一索引和无索引三种类型。数据长度:当数据类型选择字符串时,该选项有效,用来设置数据类型的长度。允许空:单击此项前的复选框,该框中出现 表示选中,表示数据记录到数据库的表格中该字段可以有空值,否则表示该字段的数据不能为空值。“添加字段”按钮:当一个字段设置完毕后,单击此按钮可以将字段以及相关信息添加到字段列表框中。“删除字段”按钮:在字段列表框中选
4、中某行字段,单击此按钮可将该字段删除。“修改字段”按钮:在字段列表框中选中某行字段,重新编辑完后,单击此按钮保存修改的内容。“上移”按钮:在字段列表框中选中某行字段,单击此按钮可使字段的位置向上移动。“下移”按钮:在字段列表框中选中某行字段,单击此按钮可使字段的位置向下移动。第三步:设置完成后单击“确定”按钮,完成表格模板的配置,该模板会自动增加到模板编辑区中,如图所示:图18-3 表格模板编辑区第四步:删除表格模板在图18-3表格模板编辑区中选中预删除的模板,单击“删除”按钮即可将该模板删除。第五步:拷贝、粘贴表格模板在图18-3表格模板编辑区中选中一表格模板,单击“拷贝”、“粘贴”按钮可以
5、实现应用内部或应用之间表格模板拷贝和粘贴的功能。18.2.2 记录体记录体是用来建立数据库表格字段与KingSCADA变量之间的对应关系,即KingSCADA中的哪个变量值写到数据库中的哪个字段中去。记录体配置过程如下:第一步:创建记录体在KingSCADA工程设计器的树型目录中选择“通用数据源”“ODBC数据源”“记录体”选项,在右侧编辑区中单击“新建”按钮弹出对话框,如图所示:图18-4 记录体编辑对话框第二步:编辑记录体记录体名称:设置记录体的名称,长度不超过32个字符且唯一。描述:该记录体的注释信息,长度不超过64个字符。字段名:数据库表格中的列名称,该名称要与数据库表格中的字段名称一
6、致。绑定变量:KingSCADA数据词典中变量的名称,单击按钮,在弹出的变量列表中选择变量。“添加字段”按钮:当一个字段名和KingSCADA变量的对应关系设置完毕后,单击此按钮可以将该信息添加到字段列表框中。“删除字段”按钮:在字段列表框中选中某行字段,单击此按钮可将该信息删除。“修改字段”按钮:在字段列表框中选中某行字段,重新编辑完后,单击此按钮保存修改的内容。“上移”按钮:在字段列表框中选中某行字段,单击此按钮可将该信息的位置向上移动。“下移”按钮:在字段列表框中选中某行字段,单击此按钮可将该信息的位置向下移动。第三步:设置完成后单击“确定”按钮,完成记录体的配置,该记录体会自动增加到记
7、录体编辑区中,如图所示:图18-5 记录体编辑区第四步:删除记录体在图18-5记录体编辑区中选中预删除的记录体,单击“删除”按钮即可将该记录体删除。第五步:拷贝、粘贴记录体在图18-5记录体编辑区中选中一记录体,单击“拷贝”、“粘贴”按钮可以实现应用内部或应用之间记录体拷贝和粘贴的功能。18.3 数据库访问操作KingSCADA访问数据库的操作过程如下:18.3.1 创建数据源在使用KingSCADA与数据库进行数据通讯之前,必须首先建立ODBC数据源。下面以Access数据库为例介绍如何建立数据源,第一步:在数据库中新建一个数据库(文件名:mydb.mdb)。第二步:在WINDOWS(以WI
8、NDOWS XP为例)控制面板中,双击管理工具中的“数据源(ODBC)”,出现ODBC数据源管理器如图所示:图18-6 ODBC数据源管理器第三步:选择“系统DSN”标签页,单击“添加”按钮,弹出“创建新数据源”对话框,如图所示:图18-7 数据源类型选择窗口第四步:选择所需的数据库类型(如:Microsoft Access Driver(*.mdb),单击“完成”按钮,弹出对话框如图所示:图18-8 设置数据源信息窗口在图18-8“数据源名”中输入新建的数据源名称(如mine),单击“选择”按钮,弹出对话框如图所示:图18-9 选择连接的数据库在此对话框中选择已建好的数据库,将数据库(即my
9、db.mdb)与数据源(mine)链接,单击“确定”按钮逐级返回。到此一个数据源建立完毕。18.3.2 创建表格模板创建表格模板过程如下:第一步:在KingSCADA工程设计器的树型目录中选择“通用数据源”“ODBC数据源”“表格模板”选项在右侧编辑区中单击“新建”按钮弹出创建表格模板对话框,在对话框中建立三个字段,如图所示:图18-10 创建表格模板对话框第二步:单击“确定”按钮完成表格模板的创建。建立表格模板的目的是定义数据库表格的格式,在后面用到SQLCreatTable()函数时以此格式在Access数据库中建立表格。18.3.3 创建记录体创建记录体过程如下:第一步:在KingSCA
10、DA工程设计器的树型目录选择“通用数据源”“ODBC数据源”“记录体”选项在右侧编辑区中单击“新建”按钮弹出创建记录体对话框。对话框设置如图所示:图18-11 创建记录体对话框记录体中定义了Access数据库表格字段与KingSCADA变量之间的对应关系,对应关系如下所示:Access数据库表格字段KingSCADA变量日期字段local$Date时间字段local$Time液位值local液位即:将KingSCADA中local$Date变量值写到Access数据库表格日期字段中;将local$Time变量值写到Access数据库表格时间字段中;将local液位变量值写到Access数据库表
11、格液位值字段中;第二步:单击“确定”按钮完成记录体的创建。18.3.4 连接数据库第一步:在KingSCADA工程设计器的数据词典中新建一内存整型变量:变量名:DeviceID变量类型:内存整型第二步:新建一画面,名称为“数据库操作画面”,并在画面上添加一按钮,按钮文本为“数据库连接”,在按钮的弹起事件中输入如下命令语言,如图所示:图18-12 数据库连接脚本上述脚本的作用是使KingSCADA与mine数据源建立了连接(即与数据库. mdb建立了连接)。在实际应用中将此命令写到工程设计器 脚本 系统脚本应用程序脚本 启动时中,即系统开始运行就连接到数据库上。18.3.5 创建数据库表格在数据
12、库操作画面中添加一按钮,按钮文本为“创建数据库表格”,在按钮的弹起事件中输入如下命令语言,如图所示:图18-13 创建数据库表格脚本上述脚本的作用是以表格模板“Table1”的格式在数据库中建立名为“KingTable”的表格。在生成的KingTable表格中,将生成三个字段,字段名称分别为:日期,时间,液位值。每个字段的类型、长度及索引类型与表格模板“Table1”中的定义一致。此脚本只需执行一次即可,如果表格模板有改动,需要先将数据库中的表格删除才能重新创建。18.3.6 插入记录在数据库操作画面中添加一按钮,按钮文本为“插入记录”,在按钮的弹起事件中输入如下命令语言,如图所示:图18-1
13、4 插入记录脚本上述脚本的作用是在表格KingTable中插入一个新的记录。在KingSCADA运行环境中按下此按钮后,KingSCADA会将Bind1中关联的KingSCADA变量的当前值插入到Access数据库表格“KingTable”中,从而生成一条记录,达到了将KingSCADA数据写到外部数据库中的目的。18.3.7 查询记录查询数据库中的记录可以通过SQL函数来实现,即SQLFirst、SQLNext、SQLPrev和SQLLast函数,下面将具体介绍操作过程。第一步:用户如果需要将数据库中的数据调入KingSCADA来显示,需要另外建立一个记录体,此记录体的字段名称要和数据库表格
14、中的字段名称一致,连接的变量类型与数据库中字段的类型一致。在工程设计器的数据词典中定义三个内存变量:a、变量名:记录日期变量类型:内存字符串初始值:空b、变量名:记录时间变量类型:内存字符串初始值:空c、变量名:液位返回值变量类型:内存实型初始值:0第二步:新建一画面,名称为“数据库查询画面”,并在画面上添加三个文本图素,在文本图素的“字符串输出”、“模拟量值输出”动画中分别连接变量local记录日期、local记录时间、local液位返回值,用来显示查询出来的结果。第三步:在工程设计器中定义一个记录体,记录体窗口属性设置,如图所示:图18-15 记录体属性设置对话框第四步:在画面中添加一按钮
15、,按钮文本为“得到选择集”,在按钮的弹起事件中输入如下脚本,如图所示:图18-16 记录查询脚本此脚本的作用是:以记录体Bind2中定义的格式返回KingTable表格中第一条数据记录。第五步:在画面上添加四个按钮,按钮属性设置如下:a、按钮文本:第一条记录“弹起时”动画连接:SQLFirst( DeviceID );b、按钮文本:下一条记录“弹起时”动画连接:SQLNext( DeviceID );c、按钮文本:上一条记录“弹起时”动画连接:SQLPrev( DeviceID );d、按钮文本:最后一条记录“弹起时”动画连接:SQLLast( DeviceID );上述命令语言的作用分别为查询库数据中第一条记录、下一条记录、上一条记录和最后一条记录从而达到了数据查询的目的。18.4 SQL访问函数在KingSCADA中使用SQL函数可以实现动态修改数据库记录的功能,即可以动态插入记录、更新记录、删除记录等等,SQL访问函数详见函数速查手册。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1