1、组态王与Access数据库连接组态王与Access数据库连接第九讲组态王与Access数据库连接90第九讲组态王与Access数据库连接在本课程您将:,了解组态王SQL访问管理器。,了解如何与通用数据库进行连接,了解如何想向数据库插入记录组态王SQL访问功能实现组态王和其他外部数据库(支持ODBC访问,了解如何 查询数据库中记录接口)之间的数据传输。它包括组态王的SQL访问管理器和SQL函数。以Ms Access数据库为例,下面说明组态王与其相连的例子。北京亚控科技发展有限公司笫九讲组态王与Access数据库连接91SQL访问管理器SQL访问管理器用来建立数据库列和组态王变量之间的联系。包括表
2、格模板和记录体两部分功能。通过表格模板在数据库表中建立表格;通过 记录体建立数据库表格列和组态王之间的联系,允许组态王通过记录体直 接操作数据库中的数据。表格模板和记录体都是在工程浏览器中建立的。 北京亚控科技发展有限公司第九讲组态王与Access数据库连接92创建表格模板,在工程浏览器中左侧工程LI录显示区中选择“SQL访问管理器”下的“表格模板”项,在右侧H录内容显示区中双击“新建”,弹出“创建表格模板对话框”,如下图。宇字型型型 吩K-y手, 定定滚滚汛在表格模板中建立五个记录,字段名称,变量类型,变量长度,索引类型分别如上图所示。建立表格模板的U的在于定义一种格式,在后面用到是SQLC
3、reatTable()以次格式在Access数据库中建立表格。北京亚控科技发展有限公司第九讲组态王与Access数据库连接93创建记录体在工程浏览器左侧的工程LI录显示区中选择SQL访问管理器下的记录体,在右侧的LI录内容显示区中双击“新建”,弹岀“创建表格模板对话框”,如下图。记录体定义了组态王变量$日期、$时间、原料油液位、催化剂液位、 成品油液位和Access数据库表格中相应字段日期、时间、原料油液位值、 催化剂液位值、成品油液位值之间的对应连接关系。(注意:记录体中的 字段名称和顺序必须与表格模板中的字段名称和顺序必须保持一致,记 录体中的字段对应的变量的数据类型必须和表格模板中相同字
4、段对应的 数据类型相同。)建立Ms Access数据库1.建立一空Access文件,定名为mydb. mdb.2.定义数据源,双击控制面板下的“ODBC数据源(32位)”选项,弹出“ODBC数据源管理器”对话框,北京亚控科技发展有限公司笫九讲组态王与Access数据库连接94,选择“用户DSN属性页,并单击添加”按钮。,在弹出的创建新数据源”对话框中,选择Mirosoft Access Drivern单击“完成”按钮。弹岀 “ODBC Microsoft Access 安装”对话框:定义数据源名:mine北京亚控科技发展有限公司笫九讲组态王与Access数据库连接95,点击“选取”按钮,从中选
5、择相应路径下的数据库文件:mydb. mdbo,单击“确定”按钮,完成对数据源的配置。对数据库的操作1(连接数据库在数据词典里定义新变量变量名称:DevicelD变量类型:内存整数新建画面“数据库连接”,在画面上作一个按钮按钮文本:连接数据库“弹起时”动画连接:SQLConnect( DevicelD, dsn二mine;uid二;pwd二);该命令用于和数据源名(dsn)为mine的数据库建立连接,uid表示登录数据库的用户ID, pwd是登录的密码。此处没有设置用户ID和密 码。每次执行SQLConnect ()函数,都会返回一个DevicelD值,这个值在后面对所 连接的数据库的操作中都
6、要用到。(注:此时您不能在数据讣算重改变变量 DevicelD 的值。)2(创建表格在画面上作一个按钮按钮文本:创建表格“弹起时”动画连接:SQLCreateTable( DevicelD, KingTable, Tablel);该命令用于以表格模板“Tablel”的格式在数据库中建立名为“KingTable”的表格。在生成的KingTable表格中,将生成五个字段,字段 名称分别为:日期,时间,原料油液位值,催化剂液位值,成品油液位值。每个字段的变量类型,变量长度及索引类型与表格模板“Tablel”中的定义所决定。3(插入记录在画面上作一个按钮按钮文本:插入记录“弹起时”动画连接:SQLIn
7、sert( DevicelD, KingTable, bindl);北京亚控科技发展有限公司第九讲组态王与Access数据库连接96该命令使用记录体bindl中定义的连接在表格KingTable中插入一个新的记 录。该命令执行后,组态王运行系统会将变量$日期的当前值插入到Access数据 库表格“KingTable”中最后一条记录的“日期”字段中,同理变量$时间、原料油 液位、催化剂液位、成品油液位的当前值分别赋给最后一条记录的字段:时间、原 料油液位值、催化剂液位值和成品油液位值。运行过程中可随时点击该按钮,执行插入操作,在数据库中生成多条新的记 录,将变量的实时值进行保存。4(查询记录a)
8、 定义变量。这些变量用于返回数据库中的记录。记录日期:内存字符串记录时间:内存字符串原料油液位返回值:内存实型催化剂液位返回值:内存实型成品油液位返回值:内存实型b) 定义记录体bind2,用于定义查询时的连接。如下图C)得到一个特定的选择集在画面上作一个按钮按钮文本:得到选择集北京亚控科技发展有限公司笫九讲组态王与Access数据库连接97“弹起时”动画连接:SQLSelect( DevicelD, KingTable, bind2该命令选择表格KingTable中所有符合条件的记录,并以记录体bind2中定义 的连接返回选择集中的第一条记录。此处没有设定条件,将返回该表格中所有记 录。执行
9、该命令后,运行系统会把得到的选择集的第一条记录的“日期”字段的值 赋给记录体bind2中定义的与其连接的组态王变量“返回日期”,同样“KingTable”表格中的时间、原料油液位值、催化剂液位值、成品油液位值字段 的值分别赋给组态王变量返回时间、原料油液位返回值、催化剂液位返回值、成品 油液位返回值。d)查询返回值显示在画面上做文本如下图:査询返回值1日期 时间 療旃油咬便僅 槪化九|值威品臟徑值uunn nam tana文本“#”对应的“模拟值输出”动画连接分别为:“返回日期”,“返回 时间”,“原料油液位返回值”,“催化剂液位返回值”“成品油液位返回值” 在执行SQLSelectO函数后,
10、首先返回选择集的第一条记录,在画面上“#坤#”将 显示返回值。e)查询记录。在画面上做四个按钮分别为按钮文本:第一条记录“弹起时”动画连接:SQLFirst( DevicelD );按钮文本:下一条记录弹起时”动画连接:SQLNext( DevicelD );按钮文本:上一条记录“弹起时”动画连接:SQLPrev( DevicelD );按钮文本:最后一条记录弹起时”动画连接:SQLLast( DevicelD );5.断开连接北京亚控科技发展有限公司第九讲组态王与Access数据库连接98在画面上作一个按钮按钮文本:断开连接“弹起时”动画连接:SQLDisconnect( DevicelD
11、);该命令用于断开和数据库mydb. mdb的连接最后的生成画面如下图所示:本例运行过程在系统启动后,打开数据库连接画面。1(点击“数据库连接”按钮,系统将建立和以“mine”为数据源名的Access 数据库mydb. mdb的连接。观察“组态王信息窗口”,连接成功后会出现一条信息:“运行系统:数据库: 数据库(F:我的工程mydb)连接成功” 2(点击“创建表格按钮”,将在数据库中 以表格模板“Tablel”为格式建立表格“KingTable” .观察“组态王信息窗口”,信息提示:“运行系统:数据库:创建表格 (KingTable)。如果反复执行此命令则提示:“运行系统:数据库错误:表(Ki
12、ngTable)已存在。北京亚控科技发展有限公司第九讲组态王与Access数据库连接993(点击“插入记录”按钮,使用记录体bindl中定义的连接在表格KingTable中插入一个新的记录。记录当前的日期、时间、及液位值。该命 令可随时执行以记录变量的实时值,从而在表格不断插入记录。4(点击“选择数据集”按钮。该命令选择表格KingTable中所有符合条件的记录,并以记录体bind2中定义的连接返回选择集中的第一条记录。“组态王信息窗口”,信息提示:“运行系统:数据库:选择操作成功”5(点击“第一条记录”、“下一条记录”、“上一条记录”、“最后一条记 录”从而返回选择集中的不同记录。返回的记录中的字段值将赋给bind2 中定义的相应变量。在画面上可以直接看出来。北京亚控科技发展有限公司
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2