组态王与数据库通讯

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、如何使组态王与数据库建立连接

使用组态王与数据库进行数据通讯,首先要建立它们之间的连接。下面通过一个实例介绍如何使组态王与数据库建立连接。

例如:

◆ 继续使用“定义ODBC数据源”中的例子。在机器上D盘根目录下建立的“SQL 数据库.mdb”数据库中建立一个名为kingview的表格。在组态王的数据词典里定义新变量,变量名称:DeviceID,变量类型:内存整型;

◆ 然后在本机上的ODBC数据源中建立一个数据源,比如数据源名为mine。详

细配置请参照“定义ODBC数据源”一节;

◆ 在组态王工程浏览器中建立一个名为BIND的记录体,定义一个字段:name (对应组态王内存字符串变量name),详细定义请参照“记录体”一节;

◆ 连接数据库:新建画面“数据库连接”,在画面上作一个按钮,按钮文本为:“连接数据库”,在按钮“弹起时”动画连接中使用SQLConnect()函数和SQLSelect()函数建立与“mine”数据库进行连接:

SQLConnect( DeviceID, "dsn=mine;uid=;pwd=");

/*建立和数据库mine连接,其中DeviceID是用户创建的内存整型变量,用来保存SQLConnect()函数为每个数据库连接分配的一个数值*/

/*注意在执行SQLDisconnect(断开和数据库的连接函数)之前,重复执行SQLConnect将会增加DeviceID,DeviceID最多为255*/

SQLSelect( DeviceID, "kingview", "BIND", "", "");/* SQLSelect()函数:访问一个数据库并返回一个表的信息,此信息可以被查询、删除、清空等操作*/

以上指令执行之后,使组态王与数据库建立了连接。

2、如何创建一个表格

组态王与数据库连接成功之后,可以通过组态王操作在数据库中创建表格。下面通过一个实例介绍如何创建一个表格。

例如:

◆ 在组态王中创建一个表格模板:table1。定义三个字段:salary(整型)、name (定长字符串型,字段长度:255)、age(整型)。详细定义请参照“19.1.1 表格模板”一节;

◆ 将上节实例中画面上“连接数据库”按钮“弹起时”动画连接命令语言该为:

SQLConnect( DeviceID, "dsn=mine;uid=;pwd=");

◆ 创建数据库表格:在“数据库连接”画面上新作一个按钮,按钮文本为:“创建表格”,在按钮“弹起时”动画连接中使用SQLCreateTable()函数创建表格。SQLCreateTable( DeviceID, "KingTable", "table1" );

/*创建数据库表格名称为:KingTable*/

该命令用于以表格模板“table1”的格式在数据库中建立名为“KingTable”的表格。在自动生成的KingTable表格中,将生成三个字段,字段名称分别为:salary,name,age。每个字段的变量类型、变量长度及索引类型与表格模板“table1”中的定义所决定。

3、如何将数据存入数据库

创建数据库表格成功之后,可以将组态王中的数据存入到数据库表格中。下面通过一个实例介绍如何将数据存入数据库。

例如:

将数据存入数据库

◆ 在组态王中创建一个记录体:BIND1。定义三个字段:salary(整型,对应组态王变量record1)、name(定长字符串型,字段长度:255,对应组态王变量name)、age(整型,对应组态王变量age)。详细定义请参照“记录体”一节;

◆ 在“数据库连接” 画面上作一个按钮,按钮文本为:“插入记录”,在按钮“弹起时”动画连接中使用SQLInsert()函数:

SQLInsert( DeviceID, "KingTable", "BIND1" );

该命令使用记录体BIND1中定义的连接在表格KingTable中插入一个新的记录。

该命令执行后,组态王运行系统会将变量salary的当前值插入到Access数据库表格“KingTable”中最后一条记录的“salary”字段中,同理变量name、age 的当前值分别赋给最后一条记录的字段:name、age值。运行过程中可随时点击该按钮,执行插入操作,在数据库中生成多条新的记录,将变量的实时值进行保存。

4、如何进行数据查询

组态王在运行过程中还可以对已连接的数据库进行数据查询。下面通过一个实例介绍如何进行数据查询。

例如:

进行数据查询

◆ 在组态王中定义变量。这些变量用于返回数据库中的记录。“记录salary”:内存实型;“记录name”:内存字符串型;“记录age”:内存整型。定义记录体BIND2,用于定义查询时的连接。如图19.14所示。

图19.14 数据查询记录体

◆ 在“数据库连接” 画面上作一个按钮,按钮文本为:“得到选择集”,在按钮“弹起时”动画连接中使用SQL连接函数,得到一个指定的选择集:

SQLSelect( DeviceID, "KingTable", "BIND2" ,"","");

该命令选择表格KingTable中所有符合条件的记录,并以记录体BIND2中定义的连接返回选择集中的第一条记录。此处没有设定条件,将返回该表格中所有记录。

执行该命令后,运行系统会把得到的选择集的第一条记录的“salary”字段的值赋给记录体BIND2中定义的与其连接的组态王变量“记录salary”,同样“KingTable”表格中的name、age字段的值分别赋给组态王变量记录name、记录age。

◆ 画面中查询返回值的显示:在画面上做三个“##”文本,分别定义值输出连接到变量“记录salary”、“记录name”和“记录age”,如图19.15所示。

图19.15 查询返回值画面

在执行SQLSelect()函数后,首先返回选择集的第一条记录,在画面上“##”将显示返回值。

◆ 查询记录:在“数据库连接” 画面上做四个按钮。

按钮文本:第一条记录

“弹起时”动画连接:SQLFirst( DeviceID );

按钮文本:下一条记录

“弹起时”动画连接:SQLNext( DeviceID );

按钮文本:上一条记录

相关文档
最新文档