2023年11月23日发(作者:)

(完整)labview与数据库资料

17.2 Database Connectivity应用典型实例

17.21 Access中建立一个数据库

使用NI所提供的数据库工具包Database Connectivity只能操作数据库,但是无法创建数

据库,因此需要借助第三方数据库管理系统,Access等来创建数据库。首先我们建立一个Data

mdb的数据库文件。

打开Microsoft Access软件,单击文件〉〉新建…,选择空数据库,保存到文件夹下.

创建方法如图17-11所示.

1711 Access中创建数据库表格

在利用Database Connectivity工具包操作数据库之前,需要先连接数据库,连接数据库

的方法有以下两种.

1.利用DSN连接数据库

(完整)labview与数据库资料

LabVIEW数据库工具包基于ODBCOpen Database Connectivity技术,在使用ODBC API

函数之前,需要提供数据源名DSN(Data Source Names)才能连接到实际数据库,所以需要首

先创建DSNDatabase Connectivity工具包与ODBC的关系如图17-12所示。

打开Windows控制面板>>管理工具,选择数据源,进入“ODBC数据源管理器”对话框,如图

17-13所示.

17-12 DB ToolsODBC的关系 1713 “ODBC数据源管理

器”对话框

在“用户DSN”页面下创建的数据源只有本用户才能访问,在“系统DSN”页面下创建的数

据源,该系统下的所有用户都可以访问。在此选择“用户DSN”,单击“添加”按钮,在弹出的

(完整)labview与数据库资料

“创建新数据源"对话框中选择“Driver do Microsoft Access*mdb)"然后单击“完成”

按钮,如图17-14所示。

随后弹出“ODBC Microsoft Access安装”对话框,输入“数据源名",如“LSData”,然

后单击“选择"按钮,选择建立好的Datamdb数据库文件,单击“确定"按钮,如图17-15所示。

17-14 “创建新数据源”对话框

1715 “ODBC Microsoft Access安装”对话框

完成以上配置后,就可以在“用户DSN”页面下看到新创建的名为LSDataDSN.单击

“确定”按钮可完成DSN的建立。

(完整)labview与数据库资料

按照图1716所示的程序框图编程,在DB Tools Open 的输入参数

Connection information输入创建的数据源名称LSData,运行该程序,status并没有亮起示

,说明数据源可以正常连接.

17-16 在程序中连接数据库

2.利用UDL连接数据库

Microsoft还提供了另一种技术,即ActiveX数据对象ADOActiveX Data Objects)技

术。ADOMicrosoft提出的应用程序接口(API用以实现访问关系或非关系数据库中的数据.ADO

使用通用数据连接UDL(Universal Data Link)来获取数据库信息,以实现数据库连接。

Datamdb(注意文件的扩展名)所在的文件夹下单击鼠标右键,在弹出的快捷菜单中选择

新建〉>Microsoft数据链接,如图1717所示。命名新建的数据库链接名称为

(完整)labview与数据库资料

17-17 新建数据链接

双击打开文件,切换到“提供程序"页面,从中选择

“Microsoft Jet 4.0 OLE DB Provider”,设置完成单击“下一步”按钮,如图1718

所示.

切换到“连接”页面,在“1.选择或输入数据库名称”文本框右侧,单击按钮,选择已

经创建好的数据库。完成后单击“测试连接”按钮,弹出“测试连接成功”对话框,表示已经

成功连接数据库,如图1719所示。

1718 “数据链接属性”对话框

(完整)labview与数据库资料

1719 成功连接数据库

完成后,按照图1720所示的程序框图编程。DB Tools Open 的输入参

Connection Information输入前面所创建的UDL文件路径。运行该VIstatus灯并无示警

亮起,说明连接成功.

1720 在程序中成功连接数据库

17.2.2 数据库基本操作

连接上数据库后,就可以利用Database Connectivity的工具包对数据库进行操作了。本

节介绍数据库中比较常用的几种基本操作,包括创建表格、删除表格、添加记录、查询记录等。

1.创建表格

数据表中的每一行表示一个记录,在工具包中用Record来表示;每一列表示记录中的一个字

段,在工具包中用Field表示.能够标识表中某一行的属性或属性组称做主键,一个表只能拥有

一个主键,但可以有多个候选索引.

(完整)labview与数据库资料

查询上一节中的函数介绍,VI用于实现创建新的表格,输入参数Table是所创建的新的数据

表名称,Column Information指定表格每一列的属性,如图17-21所示。

Column name输入字段名称,data type输入该字段的数据类型,siz输入该字段的大小。

注意这里的data typeLabVIEW所能支持的数据类型不同,图17-22所示为data type

拉框所显示的数据类型。

1723所示为LabVIEW数据类型和Database Connectivity工具包中data type数据

类型的对应关系。

1721 Column Information

1722 数据库中data

17-23 LabVIEW数据类型与type的数据类型

DB Tools中数据类型对照

(完整)labview与数据库资料

按照图17-24所示的程序框图编程,table输入Data.2008报表,column information

别输入[Name/String/50]和[Age/String/50].运行该程序后,打开Datamdb,创建一个新的

表格名为2008报表,有两个字段:NameAge.

2.删除表格

相应的,也有删除数据库表格的函数.查找一下上一节数据库函数的介绍,

DB Tools Drop 具有删除数据库表格的功能。

17-24 创建新表

按照图17-25所示的程序框图编程,把之前创建的数据库表格“2008报表”删除。

双击打开Datamdb数据库查看,2008报表数据文件已经成功被删除。

3.添加记录

添加一条记录由函数DB Tools Insert Datavi来完成。该VI的输入参数table表示

要插入的数据库表格名称;data表示要插入的数据;columns表示对应的字段的名字,其数据

类型是一个字符串数组。

(完整)labview与数据库资料

按照图17-26所示的程序框图编程,因为我们在创建表格的时候指定了段名为NameAge

并且指定数据类型为String,因此在插入一条记录时,插入的数据也要按照相应的数据类型来

设置。运行完该程序后观察数据库表格的变化.

其中函数DB Tools List Columnsvi列出了数据库表格的段名。该函数的输出段名可

以直接传给DB Tools Insert 的输入column.

4.查询记录

Database Connectivity工具包并没有设置查询一条记录的函数。函数

DB Tools Select 把所连接的数据库表格的所有数据都读取出来,用户只能从读取

出来的数据经过判断得出其中的某一条符合结论的数据。

按照图17-27所示的程序框图编程。

1727 查询记录

函数Database Variant To Data用于将数据库动态变量转换成指定类型的数据。在该例

子中转换为字符串变量.

(完整)labview与数据库资料

但是当数据库中的数据有成千上万条记录甚至更多呢,此时已经无法通过读取全部的记录,

然后再检索的方法来查找需要的那一条数据.Database Connectivity工具包完全支持SQL

言。注意观察的话,可以发现函数DB Tools Select Datavi还有一个输入参数

optional clause,该端按照SQL语法输入条件语句。Database Connectivity工具包的用户手

册附录A上有SQLd 快速参考手册,SQL的条件查询语法格式如图1728所示.

1728 SQL的条件查询语法

而函数DB Tools Select Datavi已经把SELECT语句编写好集成在函数中了,用户只

需要在输入端optional clause添加WHERE的条件语句即可.1729所示是从“2008报表”

这张数据库表格中找出字段Name等于字符串“郭靖"的记录读取出来。

17-29 按照条件搜索记录

17.2.3 SQL语句的操作

(完整)labview与数据库资料

数据库操作除了创建表格、删除表格、添加记录、查询记录等功能以外,常用的还有删除记

录、更新数据等操作,但是这些操作并没有现成的VIK可以使用,因此需要借助SQL语句以及

SQL语句的执行操作函数来实现.

双击打开DB Tools Select Datavi,打开它的程序框图,如图1730所示。

1730 DB Tools

DB Tools Select Datavi先创建了SQL语句,然后用DB Tools Execute

来执行SQL语句,以此实现对数据库的操作.

因此,在编程中也可以利用SQL语句和该函数来实现Database Connectivity Tools工具包

中没有提供的功能。

1.用SQL实现数据查询操作

按照图17-31所示编程,查询字段Name为郭靖的记录。

17-31 按照条件搜索记录

函数DB Tools Select 的功能为获取记录数据,输入参数Column index是搜

索的开始索引,这里设置为0,即从0开始运行该函数.

(完整)labview与数据库资料

2.用SQL删除一条记录

查询SQL的参考手册,删除一条记录的语句是“delete”,其语法是:

DELETE FROM table_name

WHERE column_name=some_value

按照图1732编写程序,删除一条字段Name为“郭靖”的记录。

17-32 删除记录

注意:在使用“delete”语句时,要注意以下两点。

l “delete”语句不能删除单个字段的值,只能删除一行、多行、所有行,或一行也不删

.

l “delete"语句仅能删除记录,无法删除数据库表格本身;删除表要用“drop”语句;

要删除表格,则可使用DB Tools Drop

3.压缩数据库

删除了记录后,数据库文件的大小并没有减小,即使是把数据库的记录全部删除,结果仍然

是一样.这是因为数据库在使用一段时间以后,会出现因数据删除造成数据库中空闲空间太多的

情况,这就需要减少分配给数据库文件和事物日志文件的磁盘空间,以免浪费磁盘空间。

Microsoft提供了一个压缩数据库的方法,其思想是使用ADO的扩展:

Microsoft Jet OLE DB Provider and Replication Objects(JRO)中的方法

——CompactDatabaseJet对象在文件Msjrodll里面,如图1733所示

(完整)labview与数据库资料

17-33 位置

那么LabVIEW如何访问Jet对象呢,下面介绍访问的方法。

在前面板放置一个自动化引用句柄,在右键菜单中选择“选择ActiveX类〉>浏览”,在弹

出的“从类型库中选择对象”对话框中单击“浏览”按钮,按照上图路径选择然后

在对象选择列表框中选择“JetEngine(JRO。JetEngine.26)”,单击“确定”按钮完成ActiveX

类的配置。

在程序框图中放置一个调用节点,右键单击该节点,选择方法“CompressDatabase”,到此

就实现了LabVIEW中调用Jet对象的“CompressDatabase”的方法,如图17-34所示。

这个方法仅仅是对原数据库做了一个压缩后的备份,所以还需要把原文件删除,用这个备份

来替代原数据库文件.删除文件的方法可以参考第9章。

4.用SQL实现修改数据操作

SQL,修改一条记录的语句是“update”,其语法为:

UPDATE table_name

SET column_name=new_value

WHERE column_name=some_value

可以按照图1735所示的程序框图编写程序。

(完整)labview与数据库资料

17-35 更新数据库记录

173 生成可执行文件和安装文件

17.3.1 生成可执行文件

在生成可执行文件时,用户不需要关心UDL文件等问题,唯一需要关注的是把所有用到的数

据库文件添加到应用程序的“始终包括”列表框中

首先要创建工程DBlvproj,并把之前所创建的文件ODBC连接数据源。vi添加到项目中,

之前所创建的Datamdb放置于该项目目录下的data文件夹下。按照上面的方法重新连接设置

ODBC数据源,如图1736所示.

在创建“我的应用程序”时,可以把数据库文件添加到源文件页面下的“始终包

"列表框中,如图1737所示。其他的按照默认设置,生成可执行函数.

运行可执行函数,没有错误返回,表明已成功连接数据库.

(完整)labview与数据库资料

其中ODBC连接数据库函数。数据库的路径按照编辑状态下和可执行文件状

态下来设置,程序框图如图1738所示。

1737 把数据库文件添加到“始终包括”列表框中

17-38 返回数据库文件位置

173.2 生成安装文件

LabVIEW 86之前的版本,用到Database Connectivity工具包时,在生成安装文件的

过程中,需要手动添加mdac_的安装文件。现在已经不需要这么做了,生成可执行文件

(完整)labview与数据库资料

,安装文件的生成过程配置和平常无异,安装程序属性配置完成,只要单击“生成"按钮即可

生成安装文件。

17.4 小结

本章介绍了LabVIEW利用工具包与数据库连接的各种函数与应用,对于比较简单的数据库操

,如创建表格、删除表格、插入记录等,工具包提供了现成的函数,可以直接使用.对于比较复

杂的数据库操作,可以利用SQL语句进行操作,工具包提供了执行SQL语句的操作函数,当然

这首先要熟悉SQL语句。Database Connectivity工具包的用户手册附录A详细地说明了SQL

语句的一般用法,用户可参考该手册。

在本章的第3节详细地讲解了应用该工具包的函数生成可执行文件和安装文件的过程.若生

成安装文件之后无法运行,则要详细查看数据库文件的路径是否正确。由于在生成可执行文件

中,对于支持文件都是默认放置于data文件夹下,所以在编辑状态下,应尽量把这些文件也放

置于data文件夹下,否则编辑状态下的路径在生成可执行文件后无法正常使用.