LabVIEW与数据库的链接.docx

上传人:b****5 文档编号:5787426 上传时间:2023-01-01 格式:DOCX 页数:14 大小:597.55KB
下载 相关 举报
LabVIEW与数据库的链接.docx_第1页
第1页 / 共14页
LabVIEW与数据库的链接.docx_第2页
第2页 / 共14页
LabVIEW与数据库的链接.docx_第3页
第3页 / 共14页
LabVIEW与数据库的链接.docx_第4页
第4页 / 共14页
LabVIEW与数据库的链接.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

LabVIEW与数据库的链接.docx

《LabVIEW与数据库的链接.docx》由会员分享,可在线阅读,更多相关《LabVIEW与数据库的链接.docx(14页珍藏版)》请在冰豆网上搜索。

LabVIEW与数据库的链接.docx

LabVIEW与数据库的链接

第17章

LabVIEW与数据库的链接

 

图17-1Database子选板

17.1DatabaseConnectivity

工具包介绍

NI为LabVIEW用户提供了一个专门和数据库链接的工具包:

DatabaseConnectivity。

安装好工具包后,DatabaseConnectivity工具包的VI将会在函数选板的附加工具包列中出现。

Database子选板如图17-1所示。

DBToolsOpenConnection:

打开数据库连接,如图17-2(a)所示。

DBToolsCloseConnection:

关闭数据库连接,如图17-2(b)所示。

图17-2(a)DBToolsOpenConnection图17-2(b)DBToolsCloseConnection

DBToolsInsertData:

根据数据库连接插入一列新的数据,如图17-3(a)所示。

DBToolsSelectData:

根据数据库连接从数据库中提取一列数据,如图17-3(b)所示。

图17-3(a)DBToolsInsertData图17-3(b)DBToolsSelectData

DBToolsCreateTable:

根据数据库连接创建一个新的表格。

输入参数表格和行信息分别表示表格的名称和表格中每行的属性,如图17-4(a)所示。

DBToolsDropTable:

根据数据库连接删除一个由输入参数表格指定名称的表格,如图17-4(b)所示。

图17-4(a)DBToolsCreateTable图17-4(b)DBToolsDropTable

DatabaseVariantToData:

将数据库变量转换为由输入参数类型指定的LabVIEW数据类型,如图17-5所示。

Utility子选板比较常用的函数有DBToolsListTables.vi与DBToolsListColumns.vi。

在这里只介绍这两个VI,其他的VI查看该工具包的帮助文件,很容易就可以理解函数的用法,如图17-6所示。

图17-5DatabaseVariantToData图17-6Utility子选板

DBToolsListTables:

根据数据连接返回数据库中的所有表格,如图17-7(a)所示。

DBToolsListColumns:

根据数据库连接返回输入参数表格的所有列,如图17-7(b)所示。

图17-7(a)DBToolsListTables图17-7(b)DBToolsListColumns

对Advanced子选板也只介绍比较常用的VI,其他的VI在应用中不会经常涉及到,这里不再赘述,如图17-8所示。

图17-8Advanced子选板

DBToolsExecuteQuery:

执行输入的SQL语句,并返回一个数据库引用,如图17-9(a)所示。

DBToolsFetchRecordsetData:

根据记录引用从文件中获取数据,如图17-9(b)所示。

图17-9(a)DBToolsExecuteQuery图17-9(b)DBToolsFetchRecordsetData

DBToolsFreeObject:

通过释放引用来关闭目标,如图17-10所示。

图17-10DBToolsFreeObject

17.2DatabaseConnectivity应用典型实例

17.2.1在Access中建立一个数据库

使用NI所提供的数据库工具包DatabaseConnectivity只能操作数据库,但是无法创建数据库,因此需要借助第三方数据库管理系统,如Access等来创建数据库。

首先我们建立一个Data.mdb的数据库文件。

打开MicrosoftAccess软件,单击文件>>新建…,选择空数据库,保存到文件夹下。

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

图17-11在Access中创建数据库表格

在利用DatabaseConnectivity工具包操作数据库之前,需要先连接数据库,连接数据库的方法有以下两种。

1.利用DSN连接数据库

LabVIEW数据库工具包基于ODBC(OpenDatabaseConnectivity)技术,在使用ODBCAPI函数之前,需要提供数据源名DSN(DataSourceNames)才能连接到实际数据库,所以需要首先创建DSN。

DatabaseConnectivity工具包与ODBC的关系如图17-12所示。

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

图17-12DBTools与ODBC的关系图17-13“ODBC数据源管理器”对话框

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

在此选择“用户DSN”,单击“添加”按钮,在弹出的“创建新数据源”对话框中选择“DriverdoMicrosoftAccess(*mdb)”,然后单击“完成”按钮,如图17-14所示。

随后弹出“ODBCMicrosoftAccess安装”对话框,输入“数据源名”,如“LSData”,然后单击“选择”按钮,选择建立好的Data.mdb数据库文件,单击“确定”按钮,如图17-15所示。

图17-14“创建新数据源”对话框图17-15“ODBCMicrosoftAccess安装”对话框

完成以上配置后,就可以在“用户DSN”页面下看到新创建的名为LSData的DSN了。

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

按照图17-16所示的程序框图编程,在DBToolsOpenConnection.vi的输入参数Connectioninformation输入创建的数据源名称LSData,运行该程序,status并没有亮起示警,说明数据源可以正常连接。

2.利用UDL连接数据库

Microsoft还提供了另一种技术,即ActiveX数据对象ADO(ActiveXDataObjects)技术。

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

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

在Data.mdb所在的文件夹下单击鼠标右键,在弹出的快捷菜单中选择新建>>Microsoft数据链接,如图17-17所示。

命名新建的数据库链接名称为LSData.udl。

图17-16在程序中连接数据库图17-17新建数据链接

双击打开LSData.udl文件,切换到“提供程序”页面,从中选择“MicrosoftJet4.0OLEDBProvider”,设置完成单击“下一步”按钮,如图17-18所示。

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

按钮,选择已经创建好的数据库。

完成后单击“测试连接”按钮,弹出“测试连接成功”对话框,表示已经成功连接数据库,如图17-19所示。

图17-18“数据链接属性”对话框图17-19成功连接数据库

完成后,按照图17-20所示的程序框图编程。

DBToolsOpenConnection.vi的输入参数ConnectionInformation输入前面所创建的UDL文件路径。

运行该VI,status灯并无示警亮起,说明连接成功。

图17-20在程序中成功连接数据库

17.2.2数据库基本操作

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

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

1.创建表格

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

能够标识表中某一行的属性或属性组称做主键,一个表只能拥有一个主键,但可以有多个候选索引。

查询上一节中的函数介绍,VI:

用于实现创建新的表格,输入参数Table是所创建的新的数据表名称,ColumnInformation指定表格每一列的属性,如图17-21所示。

Columnname输入字段名称,datatype输入该字段的数据类型,siz输入该字段的大小。

注意这里的datatype与LabVIEW所能支持的数据类型不同,图17-22所示为datatype下拉框所显示的数据类型。

图17-23所示为LabVIEW数据类型和DatabaseConnectivity工具包中datatype数据类型的对应关系。

图17-21ColumnInformation栏图17-22数据库中data图17-23LabVIEW数据类型与

type的数据类型DBTools中数据类型对照

按照图17-24所示的程序框图编程,table输入Data.2008报表,columninformation分别输入[Name/String/50]和[Age/String/50]。

运行该程序后,打开Data.mdb,创建一个新的表格名为2008报表,有两个字段:

Name和Age。

2.删除表格

相应的,也有删除数据库表格的函数。

查找一下上一节数据库函数的介绍,DBToolsDropTable.vi具有删除数据库表格的功能。

图17-24创建新表

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

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

图17-25删除表格

3.添加记录

添加一条记录由函数DBToolsInsertData.vi来完成。

该VI的输入参数table表示要插入的数据库表格名称;data表示要插入的数据;columns表示对应的字段的名字,其数据类型是一个字符串数组。

图17-26添加记录

按照图17-26所示的程序框图编程,因为我们在创建表格的时候指定了段名为Name和Age,并且指定数据类型为String,因此在插入一条记录时,插入的数据也要按照相应的数据类型来设置。

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

其中函数DBToolsListColumns.vi列出了数据库表格的段名。

该函数的输出段名可以直接传给DBToolsInsertData.vi的输入column。

4.查询记录

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

函数DBToolsSelectData.vi把所连接的数据库表格的所有数据都读取出来,用户只能从读取出来的数据经过判断得出其中的某一条符合结论的数据。

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

图17-27查询记录

函数DatabaseVariantToData用于将数据库动态变量转换成指定类型的数据。

在该例子中转换为字符串变量。

但是当数据库中的数据有成千上万条记录甚至更多呢,此时已经无法通过读取全部的记录,然后再检索的方法来查找需要的那一条数据。

DatabaseConnectivity工具包完全支持SQL语言。

注意观察的话,可以发现函数DBToolsSelectData.vi还有一个输入参数optionalclause,该端按照SQL语法输入条件语句。

DatabaseConnectivity工具包的用户手册附录A上有SQLd快速参考手册,SQL的条件查询语法格式如图17-28所示。

图17-28SQL的条件查询语法

而函数DBToolsSelectData.vi已经把SELECT语句编写好集成在函数中了,用户只需要在输入端optionalclause添加WHERE的条件语句即可。

图17-29所示是从“2008报表”这张数据库表格中找出字段Name等于字符串“郭靖”的记录读取出来。

图17-29按照条件搜索记录

17.2.3SQL语句的操作

数据库操作除了创建表格、删除表格、添加记录、查询记录等功能以外,常用的还有删除记录、更新数据等操作,但是这些操作并没有现成的VIK可以使用,因此需要借助SQL语句以及SQL语句的执行操作函数来实现。

双击打开DBToolsSelectData.vi,打开它的程序框图,如图17-30所示。

图17-30DBToolsSelectData.vi

DBToolsSelectData.vi先创建了SQL语句,然后用DBToolsExecuteQuery.vi来执行SQL语句,以此实现对数据库的操作。

因此,在编程中也可以利用SQL语句和该函数来实现DatabaseConnectivityTools工具包中没有提供的功能。

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

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

图17-31按照条件搜索记录

函数DBToolsSelectData.vi的功能为获取记录数据,输入参数Columnindex是搜索的开始索引,这里设置为0,即从0开始运行该函数。

2.用SQL删除一条记录

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

DELETEFROMtable_name

WHEREcolumn_name=some_value

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

图17-32删除记录

注意:

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

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

“delete”语句仅能删除记录,无法删除数据库表格本身;删除表要用“drop”语句;若要删除表格,则可使用DBToolsDroptalbe.vi。

3.压缩数据库

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

这是因为数据库在使用一段时间以后,会出现因数据删除造成数据库中空闲空间太多的情况,这就需要减少分配给数据库文件和事物日志文件的磁盘空间,以免浪费磁盘空间。

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

MicrosoftJetOLEDBProviderandReplicationObjects(JRO)中的方法——CompactDatabase。

Jet对象在文件Msjro.dll里面,如图17-33所示。

图17-33Msjro.dll位置

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

在前面板放置一个自动化引用句柄,在右键菜单中选择“选择ActiveX类>>浏览”,在弹出的“从类型库中选择对象”对话框中单击“浏览”按钮,按照上图路径选择Msjro.dll,然后在对象选择列表框中选择“JetEngine(JRO.JetEngine.2.6)”,单击“确定”按钮完成ActiveX类的配置。

图17-34压缩数据库文件

在程序框图中放置一个调用节点,右键单击该节点,选择方法“CompressDatabase”,到此就实现了LabVIEW中调用Jet对象的“CompressDatabase”的方法,如图17-34所示。

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

删除文件的方法可以参考第9章。

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

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

UPDATEtable_name

SETcolumn_name=new_value

WHEREcolumn_name=some_value

可以按照图17-35所示的程序框图编写程序。

图17-35更新数据库记录

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

17.3.1生成可执行文件

图17-36在项目中添加数据库文件

在生成可执行文件时,用户不需要关心UDL文件等问题,唯一需要关注的是把所有用到的数据库文件添加到应用程序的“始终包括”列表框中。

首先要创建工程DB.lvproj,并把之前所创建的文件ODBC连接数据源.vi添加到项目中,之前所创建的Data.mdb放置于该项目目录下的data文件夹下。

按照上面的方法重新连接设置ODBC数据源,如图17-36所示。

在创建“我的应用程序”时,可以把数据库文件Data.mdb添加到源文件页面下的“始终包括”列表框中,如图17-37所示。

其他的按照默认设置,生成可执行函数。

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

其中GetDBPath.vi是ODBC连接数据库函数。

数据库的路径按照编辑状态下和可执行文件状态下来设置,程序框图如图17-38所示。

图17-37把数据库文件添加到“始终包括”列表框中

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

17.3.2生成安装文件

LabVIEW8.6之前的版本,用到DatabaseConnectivity工具包时,在生成安装文件的过程中,需要手动添加mdac_typ.exe的安装文件。

现在已经不需要这么做了,生成可执行文件后,安装文件的生成过程配置和平常无异,安装程序属性配置完成,只要单击“生成”按钮即可生成安装文件。

17.4小结

本章介绍了LabVIEW利用工具包与数据库连接的各种函数与应用,对于比较简单的数据库操作,如创建表格、删除表格、插入记录等,工具包提供了现成的函数,可以直接使用。

对于比较复杂的数据库操作,可以利用SQL语句进行操作,工具包提供了执行SQL语句的操作函数,当然这首先要熟悉SQL语句。

DatabaseConnectivity工具包的用户手册附录A详细地说明了SQL语句的一般用法,用户可参考该手册。

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

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

由于在生成可执行文件中,对于支持文件都是默认放置于data文件夹下,所以在编辑状态下,应尽量把这些文件也放置于data文件夹下,否则编辑状态下的路径在生成可执行文件后无法正常使用。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1