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

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

解答:

1. 环境搭建与准备工作

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

注意!应当下载安装32位版本的数据库引擎,否则会出现如下错误http://digital.ni.com/public.nsf/web/searchinternal/61b269d5d3f196bf8625792800365eea?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,双击之后进行配置,参见http://digital.ni.com/public.nsf/web/searchinternal/1d5eb4dcbd13106486256b9d005e11b0?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() https://support.office.com/en-us/article/Type-Conversion-Functions-8ebb0e94-2d43-4975-bb13-87ac8d1a2202一些字段中含有空格,需要用[] 括起来,否则无法正常识别,如[saved level] = 10。

1)增[ZK1]

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

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

2)删

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

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

3)改

UPDATE USERS SET Price =1000 WHERE id > 5000

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

4)查

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

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

图3 排序操作结果

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

https://support.office.com/zh-cn/article/Access-SQL%EF%BC%9A%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5%E3%80%81%E8%AF%8D%E6%B1%87%E5%92%8C%E8%AF%AD%E6%B3%95-444d0303-cde1-424e-9a74-e8dc3e460671

access 文本转换数字_LabVIEW访问Access数据库教程相关推荐

  1. access 文本转换数字_ACCESS的短文本和长文本分类

    学习交流,欢迎留言~~ 在ACCESS中写了一句创建表的SQL语句,如下: CREATE TABLE Persons ( Id_P int, LastName varchar(255), FirstN ...

  2. 怎样把输入的文本转换成html代码存入数据库啊

    /// <summary> /// 替换html中的特殊字符 /// </summary> /// <param name="theString"&g ...

  3. Excel-VBA:文本转换数字

    With Sheet2.UsedRange.Value = .Value End With

  4. 通过OleDB连接方式,访问Access,Excel数据库.

    通过OleDB连接方式,访问Access,Excel数据库. OleDbConnectionStringBuilder oleConStr = new OleDbConnectionStringBui ...

  5. 在ASP程序中访问Access数据库

    嵌入式培训教程 在基于微软IIS/PWS的网络平台上,通过服务器端运行的ASP程序来访问后台数据库,是一种最常见的模式了.而对于小型的数据库应用需求,微软的Access数据库,应该是与ASP程序配套使 ...

  6. EVC4.0+AdoCe3.1访问Access数据库全攻略(附带说明及例程)

    http://bbs.mscommunity.com/forums/ShowThread.aspx?PostID=26641 EVC4.0+AdoCe3.1访问Access数据库全攻略(附带说明及例程 ...

  7. Unity3D 访问Access数据库

    Unity3D 访问Access数据库 在开始这个小教程之前呢,其实在网上你已经可以找到相关的资料了,但是我还是要把我自己做练习的一点东西分享出来.写这个教程的主要原因呢,是一个朋友在u3d的官网论坛 ...

  8. python连接access数据库odbc_对Python通过pypyodbc访问Access数据库的方法详解

    看书上通过ODBC访问数据库的案例,想实践一下在Python 3.6.1中实现access2003数据库的链接,但是在导入odbc模块的时候出现了问题,后来查了一些资料就尝试着使用pypyodbc,最 ...

  9. vb如何测试连接mysql_VB怎么连接访问Access数据库?

    VB是我们常常会见到的一款可视化程序设计语言,它的功能十分强大,因此有很多人会使用它,但是有时候我们需要用到VB来连接Access数据库,但是却无从下手,那么VB怎么连接访问Access数据库呢?不懂 ...

最新文章

  1. 转自微信号:测试那点事
  2. [笔记]NumPy基础操作
  3. 原创:QQ群发言统计
  4. WINCE6.0支持Multiple XIP
  5. 基于物化视图优化_「PostgreSQL技巧」PostgreSQL中的物化视图与汇总表比较
  6. 《Node.js设计模式》高级异步准则
  7. From Hero to Zero
  8. ITK:创建另一个图像实例
  9. User profile synchronization service starting issues 用户配置文件同步服务启动问题
  10. node 微信红包 证书出错,请登录微信支付商户平台下载证书
  11. es集群搭建_滴滴Elasticsearch 集群跨版本升级与平台重构之路
  12. MySQL中保存emoji表情
  13. winrar注册码激活码
  14. spss19 视频教程下载_19个网站免费下载股票视频介绍和录像
  15. Axis2 WS-Security 签名和加密
  16. 总结:Linux目录之/dev
  17. 2、服务器系统:Windows Server 2012 操作系统
  18. 基于ERNIR3.0文本分类:(KUAKE-QIC)意图识别多分类(单标签)
  19. Altium Designer 错误: Component U1 LM833MM has unused sub-part (2).
  20. while [ -h “$PRG“ ] ; do 该段SHELL脚本的含义及应用

热门文章

  1. Python logging 学习
  2. Linux下获取CPUID、硬盘序列号与MAC地址
  3. 百度产品经理vs 腾讯产品经理:技术大牛与小白
  4. SQLite数据库【转有改】
  5. @程序员,当你准备选择“这条路”,那么恭喜你,你的钱包可能要鼓了!
  6. 程序员真正的天赋是什么?
  7. 敏捷BI的业务模型是怎样的,为何能替代手动建模?
  8. 数据库最最常用语句(10年工作笔记)
  9. 即时通讯软件线上系统维护工作总结
  10. 夫学须静也freeeim