欢迎光临
我们一直在努力

LabVIEW访问Access数据库教程

最近做了一个项目,使用到了Microsoft Access数据库来存储数据,在自己电脑上试验时候(office版本是2011),都是好的,但已安装到客户电脑(版本是2013),数据库打开时候报错。在NI管网上各种搜索报错原因,最后在这篇文章中找到了答案。

问题: Access数据库是微软提供的一个常见的数据库工具,如何使用LabVIEW访问和使用Access数据库目前没有完整教程,这里给出从新建、连接、增删改查等基本操作的方案,方便快速上手。

1. 环境搭建与准备工作

开发计算机上应当装有Microsoft Access及Access数据库引擎,下载地址-us/download/details.aspx?id=13255 办公室电脑默认没有安装这个数据库引擎,会导致后续制作UDL文件时找不到Microsoft Office 12.0 Access DatabaseEngine OLE DB Provider这个选项,即无法使用.accdb扩展名的新版本Access文件(旧版本为.mdb)。

注意!应当下载安装32位版本的数据库引擎,否则会出现如下错误?OpenDocument

2. 数据库的基本概念与名词解释

数据库采用层次结构组织和存储数据,一个Access数据库文件包含了若干个表(Table),表是一类数据的集合;每个表中有若干字段(列),代表了某一类属性例如ID、姓名、联系方式等;每一行称作一条记录,一般一条记录代表一个个体,可以是一个人、一件货物等等。

SQL即结构化查询语言,是用来操作数据库的标准语言。包括了数据定义、数据操作、数据控制、交易控制四个部分,前两类是我们常用的,如新建一个表、查询排序、增加或删除记录等。以一个具体语句为例:

SELET TOP 30 * FROM mytable WHERE [myprice] > 1000 AND myname <> somename ORDER BY myid ASC,mydate DESC

该语句选择了mytable这个表中my price字段大于1000并且myname字段不等于somename 中的前30条记录中的所有字段(*表示),将他们按照myid字段升序,mydate字段降序排列显示。注意!数据库操作中的英文不分大小写,例如Table和table是同一个表,id和ID是同一个字段,写SQL语句时用小写也可以得到相同的结果,但为了清晰易辨,SQL关键词可以用全大写。

3. 建立UDL数据库链接

UDL文件是LabVIEW连接数据库的枢纽,有两种方法新建UDL文件,方法一是新建文本文件,将后缀名改成.udl,双击之后进行配置,参见?OpenDocument 第二种方法是在LabVIEW – 工具- Create Data Link新建UDL并配置数据库位置,由于不需要人工新建文件和改后缀名,比较推荐此方法,参见http://digital.ni.com/public.nsf/allkb/5351D6732E4100B586256F700060CC17?OpenDocument

4. 在LabVIEW中操作数据库

LabVIEW自带的database高级操作其实是对SQL Query的封装,其底层都是使用SQL语言操作数据库。这里使用图1所示的vi直接执行SQL语句,可以避免高级操作无法排序显示、难以执行复杂嵌套语句等弊端,方便快捷的使用SQL的各项功能。

图1 核心vi

图2 核心操作

注意!字段具有不同的类型,如数字、字符串、时间、价格等,在SQL语句中也有不同的标识,操作数字类型(不论整型还是浮点)和价格直接输入数字即可,如id = 100,字符串需要用’’单引号引起来,如用户名 = ‘小明’,时间需要用##两个井号包括起来,如time = #2010/1/1#。也可使用Access提供的类型转换函数CDate() -us/article/Type-Conversion-Functions-8ebb0e94-2d43-4975-bb13-87ac8d1a2202一些字段中含有空格,需要用[] 括起来,否则无法正常识别,如[saved level] = 10。

1)增[ZK1]

INSERT INTO USERS (id, 用户名, 密码) VALUES (123,'xiaoming', '123fasdf')

新增记录时可以不用对所有字段赋值。注意!字段名与内容类型要一致,要用()括起来。

DELETE FROM USERS WHERE time< #2010/1/1#

WHERE的用法:表示限定条件,如大于>;小于<;不等于<>;在…之间BETWEEN value1 AND value2;包含关键字LIKE value;多个可能值 IN (value1, value2,…, valuen);

UPDATE USERS SET Price =1000 WHERE id > 5000

注意:并不是所有字段都可以update,例如本例中的id定义为自增量,不能重复且不能更改。-is-my-query-not-updateable

SELECT top 3 * FROM USERS ORDERBY Price ASC, id DESC

这里进行了排序操作ORDER BY,排序可以有多个关键字,每个关键字可以分别是升序ASC和降序DESC。本例中的操作将Price升序排列,对于Price一致的,id号降序排列,如图3

图3 排序操作结果

以下链接对Access中使用SQL语句进行了讲解

赞(29)
分享到: 更多

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址