LabvIEW+SQL数据库运用
- 格式:doc
- 大小:72.00 KB
- 文档页数:10
LabSQL 在智舌数据库设计方面的应用1 引言随着虚拟仪器技术的广泛应用,基于LabVIEW 开发各种现代测试系统时,如何管理和分析测试数据是设计者所关注的热点。
一般在实际测量过程中,由于采集得到的数据量非常巨大,不可能将所有的数据存储并进行处理,除此之外,还要记录系统的各项测试参数。
这就不仅要求数据冗余少,而且能够实现自动存储和管理功能。
数据库恰好满足了目前的数据存储需求,而研究基于LabVIEW 开发平台访问数据库技术,正是现代测试系统设计所必需的。
2 基于LabVIEW 开发环境访问数据库技术鉴于LabVIEW 开发环境不能直接对数据库操作,主要是通过以下四种方式间接对其进行访问[1-3]:(1)利用其他语言编写DLL 程序访问数据库动态链接库(DLL)是一种可被应用程序共享的程序模块,具有良好的移植性和兼容性,而且利用LabVIEW 中的CLF 节点可以方便、快速地通过DLL 访问数据库,但是采用其他语言编写数据库访问程序,本身就非常复杂,开发时间比较长。
(2)利用Microsoft ADO 技术访问数据库LabVIEW 本身具有ActiveX 功能,调用Microsoft ADO 控件,并使用SQL 语言可以实现数据库操作,该方法具有灵活、高效等特点,不过用户需对Microsoft ADO 控件以及SQL 语言有较深的了解,而且需要复杂的程序设计才能实现。
(3)利用LabVIEW 的Database Connectivity 工具包进行数据库操作该方法虽然简单可靠,但缺乏灵活性同时需要额外购买工具包。
(4)利用免费工具包LabSQL 进行数据库访问LabSQL 是一个免费的、源代码完全公开的LabVIEW 数据库访问工具包。
利用LabSQL 库中集成的模块VI,不仅避免了前三种方式中存在的问题,而且简单易用,能够快速实现数据库的访问。
综上所述,由于LabSQL 已将复杂的底层ADO 及SQL 操作一起封装成一系列的模块VI,而且可以支持Windows 操作系统中任何基于OBDC 的数据库,同时对于那些不熟悉SQL 语言的用户也可以很容易地使用。
目录第1章引言—献给想用数据库而不懂数据库的工程师 (1)第2章边干边学数据库基础 (2)2.1 数据库简史 (2)2.2 建立数据源 (2)2.2.1 在Access中建立一个数据库 (2)2.2.2 建立与数据库的连接 (3)2.2.3 数据库连接的可移植性问题(高级话题) (7)2.3 数据库基本操作 (8)2.3.1 创建一个表格 (8)2.3.2 删除一个表格 (10)2.3.3 添加一条记录 (10)2.3.4 查询一条记录 (11)2.4 数据库高级操作 (12)2.4.1 在LabVIEW中执行SQL语言案例研究 (12)2.4.2 用SQL实现数据查询操作 (13)2.4.3 用SQL实现删除一条记录 (13)2.4.4 压缩数据库,释放多余空间 (14)2.4.5 用SQL实现修改数据操作 (15)2.5 本章总结 (16)第3章一个完整的数据库工程范例 (17)3.1 工程项目要求 (17)3.2 生成可执行文件(*.exe) (18)3.3 生成安装文件(Installer) (19)第4章后记 (22)i第1章引言—献给想用数据库而不懂数据库的工程师曾经在一个产品检测项目中,客户要求:当产品检测不合格时,记下该产品对应的序列号,测试时间和各项测试指标,并能对这些数据进行管理和查询。
由于自己没有系统的学习过数据库,所以第一时间想到的解决方案是用文件的方式(也只能把数据存成文件了)。
在使用文件进行数据储存与管理时,遇到了一个巨大的问题:如何查询数据?基本的文件IO函数中,并没有提供现成的查询函数,所以必须自己编程实现。
实现的过程是先将数据读入内存,然后再根据关键字进行线性查找,线性查找的时间复杂度为O(N),所以当数据量逐渐增大时,这将是一个非常可怕的过程。
这个不可逾越的障碍迫使我不得不再次考虑使用数据库。
想到这儿,我立即到天河书城买了两本网上评价为数据库经典的书《数据库系统概念》和《轻松掌握SQL》,回到办公室后立即开始学习起来。
LabVIEW中的数据库操作与SQL查询LabVIEW是一款功能强大的图形化编程软件,广泛应用于科学研究、实验室操作、工业自动化控制等领域。
除了处理传感器数据、控制仪器设备外,LabVIEW还提供了丰富的数据库操作功能,能够方便地进行数据的存储、查询和分析。
本文将介绍LabVIEW中的数据库操作与SQL查询的相关知识。
一、数据库操作基础1. 数据库连接在LabVIEW中,我们可以使用数据库连接工具来与各种类型的数据库建立连接。
通过选择相应的数据库驱动程序,设置数据库连接字符串,我们可以与MySQL、Oracle、SQL Server等各种数据库进行交互。
2. 数据库创建与删除LabVIEW提供了创建和删除数据库的功能模块,我们可以使用这些模块轻松地创建新的数据库表、字段、索引等结构,或者删除已有的数据库对象。
3. 数据表操作在数据库中,数据以表的形式存储。
在LabVIEW中,我们可以使用相应的模块进行数据表的创建、修改、删除等操作。
此外,还可以定义表之间的关系,包括主键、外键等。
二、SQL查询语句的使用SQL(Structured Query Language)是一种用于数据库管理系统的语言,用于进行数据的查询、插入、更新和删除等操作。
在LabVIEW中,我们可以通过编辑SQL查询语句来实现对数据库中数据的灵活处理。
1. SELECT语句SELECT语句用于从数据库中检索数据。
我们可以指定需要检索的字段、数据表、条件等,LabVIEW会根据SQL查询语句的要求,从数据库中返回满足条件的数据记录。
2. INSERT语句INSERT语句用于向数据库中插入新的数据记录。
我们可以指定要插入的数据表、字段和数值,LabVIEW会将这些数据记录添加到数据库中相应的位置。
3. UPDATE语句UPDATE语句用于更新数据库中已有的数据记录。
我们可以根据指定的条件,更新满足条件的数据记录的字段值,以实现数据的修改和更新。
LabVIEW 中利用LabSQL 访问数据库虚拟仪器VI(virtual instruments)是National Instruments 公司在其产品LabVIEW 中首先提出的创新概念。
随着现代测试技术与仪器技术的发展,目前虚拟仪器概念已经发展成为一种创新的仪器设计思想,成为设计复杂测试系统和测试仪器的主要方法和手段。
同时LabVIEW 也以成为测试与测量领域的工业标准应用编程软件。
现代的测试测量系统大多需要对被测目标进行全方位检测,多传感器网络协调应用,从而有利于获取对目标系统的全面认识,这同时也会使产生的数据量急剧增长。
面对大量的数据信息无论是手工数据管理还是文件系统管理方式都无法正确反映各类数据之间的密切联系,都不能有效的管理和组织数据。
因此以数据库为中心,以数据管理为重点,构建的基于数据库管理数据的虚拟仪器系统是现代的测试测量系统的发展趋势。
其结构框图如图1 所示:但由于LabVIEW 本身并不具备数据库访问功能,因此以LabVIEW 编制的虚拟仪器系统需要其它辅助的方法来进行数据库访问。
1 LabVIEW 中与数据库接口的方法在基于数据库的虚拟仪器测量测试系统中,很重要的一部分工作是对实时采集地的数据进行显示、查询、统计、生成报表分析等。
这其中涉及的最主要的任务就是对数据的读取和写入,即与数据库系统进行交互。
据笔者所知,在LabVIEW 编程环境下,通常通过以下几种方法来完成与数据库的接口。
1. 利用NI 公司的附加工具包LabVIEW SQL Toolkit 进行数据库访问。
但是这种工具包比较昂贵,对于很多LabVIEW用户来讲,这个价格是不可能承受的。
2. 利用其他语言如Visual C++编写DULL 程序访问数据库,再利用LabVIEW 所带的DULL 接口访问该程序,这样可以实现间接访问数据库。
但这样工作量太大。
3. 利用LabVIEW 的ActiveX 功能,调用Microsoft ADO 控件,利用SQL 语言实现数据库访问。
在LABVIEW中实现对数据库表格的操作摘要:利用LabVIEW 数据库工具包只能操作而不能创建数据库,所以必须借助第三方数据库管理系统,比如Access,来创建数据库。
本文试图通过LABVIEW对数据库进行操作,在LABVIEW中建立学生成绩查询系统。
关键词:引言:现今,数据库技术已经发展的比较成熟了,著名的数据库管理系统有SQL Server、Oracle、DB2、Sybase ASE、Visual ForPro、Microsoft Access等。
Microsoft Access是在Windows环境下非常流行的桌面型数据库管理系统,它作为Microsoft office组件之一,安装和使用都非常方便,并且支持SQL 语言,所以本文将基于Access 来介绍LABVIEW在数据库中的的操作。
在利用NI公司的附加工具包中的数据库接口工具包LabVIEW SQL Toolkit进行数据库访问。
该工具包集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能。
它的优点是易于理解,操作简单,用户可以不学习SQL语法。
LabVIEW SQL Toolkit(又被称作为LabVIEW Database Connectivity Toolset)是用于数据库访问的附加工具包,它集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能[10]。
其主要的功能如下:(1)支持ADO所支持的所有的数据库引擎;(2)支持所有与ODBC或OLE DB兼容的数据库驱动程序;(3)具有高度的可移植性,在任何情况下,用户通过改变DB Tools Open Connection VI的输入参数Connection String就可以更换数据库;(4)可以将数据库中Column Values的数据类型转换为标准LabVIEW Database Connectivity Toolset的数据类型,这进一步增强了它的可移植性;(5)与SQL兼容;(6)不使用SQL语句就可以实现数据库记录的查询、添加、修改以及删除等操作;(7)用户可以完全不需要学习SQL语法。
LabSQL在LabVIEW中访问数据库的应用[摘要] LabSQL可以实现LabVIEW与数据库的链接。
针对数据存储、查询不便于用户操作的缺点,本文基于液压测试平台介绍了在LabVIEW环境下,利用LabSQL软件包对实验数据进行实时存储、多条件查询的方法。
结果证明,操作简单,可行有效。
[关键词] LabVIEW 数据库LabSQL[Abstract] LabSQL can realize the link of LabVIEW and database. In allusion to disadvantages of data storage and inquiry , this paper introduced a method of experiment data real time storage and inquiry by using LabSQL software package under the background of LabVIEW based on a hydraulic pressure testing platform. Practice has proved that , this method is briefness、feasible and effective.[Keywords] LabVIEW database LabSQL0 引言LabVIEW是可视化的图形语言,是目前应用最广泛的虚拟仪器开发环境。
它面向应用,支持模块化和层次化结构,同时提供了大量的函数库供用户直接调用。
在测试测量中,需要对产生的数据进行管理和维护。
因此把数据库技术应用在虚拟仪器开发中,不但可以有效管理和组织数据,准确反映各个变量之间的关系,也可以扩展虚拟仪器的功能。
LabVIEW并没有提供直接与数据库连接的接口,需要通过其它辅助方法来进行数据库访问。
1 LabVIEW中数据库访问技术在LabVIEW编程环境下,通常以几种方法来完成与数据库的接口:①利用NI公司的附加工具包LabVIEW SQL Toolkit进行数据库访问;②利用其他语言如Visual C++编写DLL程序访问数据库,再利用LabVIEW所带的DLL接口访问该程序,实现间接访问数据库;③利用LabVIEW的ActiveX功能,调用Microsoft ADO控件,利用SQL语言实现数据库访问。
在LABVIEW中实现对数据库表格的操作摘要:利用LabVIEW 数据库工具包只能操作而不能创建数据库,所以必须借助第三方数据库管理系统,比如Access,来创建数据库。
本文试图通过LABVIEW对数据库进行操作,在LABVIEW 中建立学生成绩查询系统。
关键词:引言:现今,数据库技术已经发展的比较成熟了,著名的数据库管理系统有SQL Server、Oracle、DB2、Sybase ASE、Visual ForPro、Microsoft Access等。
Microsoft Access是在 Windows 环境下非常流行的桌面型数据库管理系统,它作为 Microsoft office组件之一,安装和使用都非常方便,并且支持 SQL 语言,所以本文将基于 Access 来介绍LABVIEW在数据库中的的操作。
在利用NI公司的附加工具包中的数据库接口工具包LabVIEW SQL Toolkit进行数据库访问。
该工具包集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能。
它的优点是易于理解,操作简单,用户可以不学习SQL语法。
LabVIEW SQL Toolkit(又被称作为LabVIEW Database Connectivity Toolset)是用于数据库访问的附加工具包,它集成了一系列的高级功能模块,这些模块封装了大多数的数据库操作和一些高级的数据库访问功能[10]。
其主要的功能如下:(1)支持ADO所支持的所有的数据库引擎;(2)支持所有与ODBC或OLE DB兼容的数据库驱动程序;(3)具有高度的可移植性,在任何情况下,用户通过改变DB Tools Open Connection VI的输入参数Connection String就可以更换数据库;(4)可以将数据库中Column Values的数据类型转换为标准LabVIEW Database Connectivity Toolset的数据类型,这进一步增强了它的可移植性;(5)与SQL兼容;(6)不使用SQL语句就可以实现数据库记录的查询、添加、修改以及删除等操作;(7)用户可以完全不需要学习SQL语法。
Labview连接数据库:
1.首先需要下载LABSQL文件包。
地址:
2.配置ODBC,开始—>管理工具—>数据源(ODBC)—>添加—>选择你要连接的数据库类
型,以下以SQL SERVER为例—>填写数据源名称(以下命名数据源名称为sqlserver)并选择服务器—>点击下一步(验证ID真伪这里可以选择默认的)—>下一步更改默认连接的数据库(你要把数据存到哪或从哪个数据库读数据就改成哪个)—>下一步(默认即可)—>完成—>测试数据源(成功点击确定)—>搞定!
3.参照以下程序即可实现对数据的读写,基本原理是这样更复杂的要根据个人情况进行
设计。
打开任意应用程序:
程序框图如下:
用浏览器打开任意网址:程序框图如下:
(注:素材和资料部分来自网络,供参考。
请预览后才下载,期待你的好评与关注!)。
16科技咨询导报 Science and Technology Consulting Herald2007 NO.27Science and Technology Consulting HeraldI T 技 术虚拟仪器系统是计算机和网络技术与传统的仪器技术进行融合的产物。
Labview是NI公司研制的图形化编程软件,是目前最为成功、应用最为广泛的虚拟仪器软件开发环境。
它已经成为设计复杂测试系统和测试仪器的主要方法和手段。
同时LabVIEW也以成为测试与测量领域的工业标准应用的编程语言。
而在测量和监测领域离不开的就是对测量数据的管理与维护,因此把数据库技术应用在虚拟仪器中,不但可以充分发挥数据库的管理优势,也可以扩展虚拟仪器的功能。
因此以数据库为中心,以数据管理为重点,构建的基于数据库管理数据的虚拟仪器系统是现代的测试测量系统的发展趋势。
1 LabSQL软件包简介及使用LabSQL数据库访问工具包是NI公司提供的一个免费的、多数据库、跨平台的软件包,可以通过网络免费下载到,其支持Win-dows操作系统中任何基于OBDC的数据库,包括Access,SQL Server,Orcale,等。
LabSQL是利用Microsoft ADO以及SQL语言来完成数据库访问,将复杂的底层ADO及SQL操作封装成一系列的功能函数。
利用LabSQL几乎可以访问任何类型地数据库,执行各种查询,对记录进行各种操作。
它的优点是易于理解、操作简单,用户只需进行简单地编程,就可在LabVIEW中实现数据库访问。
它还有一个最大的优点是源代码开放,并且是全面免费的。
在得到LabSQL软件包后,首先将其解压后,形成一个LabSQL的文件夹。
第二,打开LabVIEW安装目录c:\program files\Nationalinstruments\labview7.0\user.lib,在这个目录中新建一个名为LabSQL的文件夹,并将刚解压后的LabSQL文件夹复制到这个文件夹中。
labview数据库查询操作语句在LabVIEW中,可以使用Database Toolkit来进行数据库操作,包括查询操作。
常见的查询操作语句如下:1. SELECT语句:用于从数据库中检索数据。
语法如下:SELECT column_name(s) FROM table_name WHERE condition;其中,column_name(s)表示需要检索的列名(可用“*”代表所有列),table_name表示数据源表名,condition为检索条件(可选)。
例如:SELECT * FROM student WHERE age > 18;该语句检索出student表中年龄大于18的所有数据。
2. INSERT语句:用于向表中插入数据。
语法如下:INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);其中,table_name为目标表名,column1, column2, column3, ...表示需要插入的列,VALUES后面为需要插入的值。
例如:INSERT INTO student (name, age, score) VALUES('Tom', 20, 85);该语句向student表中插入一条数据,包括姓名为Tom,年龄为20,分数为85。
3. UPDATE语句:用于更新表中的数据。
语法如下:UPDATE table_name SET column1=value1, column2=value2, ... WHERE condition;其中,table_name为目标表名,column1, column2, ...表示需要更新的列,value1, value2, ...为需要更新的值,WHERE后面是更新条件(可选)。
例如:UPDATE student SET score=90 WHERE name='Tom';该语句将student表中姓名为Tom的人的分数更新为90分。
在LabVIEW中利用LabSQL操作ACCESS数据库有时候想想,网上关于这方面的资料很多,我就不必再写这方面的东西了,可是又想,我遇到的问题,还是要google,baidu 很久,所以,我决定把我遇到的问题整理一下,以供大家参考。
关于LabVIEW,我就不多说了,不知道LabVIEW的人也不会用它来编程,呵呵。
关于ACCESS,可以打电话问微软客服中心。
先说关于LabSQL的废话:LabSQL 是一个免费的、多数据库、跨平台的LabVIEW 数据库访问工具包。
目前的版本是LabSQL Release 1.1,LabSQL 支持Windows 操作系统中任何基于OBDC 的数据库,包括Acess,SQL Server,Orcale,Sybase,MySQL等。
LabSQL 是利用Microsoft ADO 以及SQL 语言来完成数据库访问,将复杂的底层ADO 及SQL 操作封装成一系列的LabSQL VIs。
利用LabSQL 几乎可以访问任何类型地数据库,执行各种查询,对记录进行各种操作。
它的优点是易于理解,操作简单,不熟悉SQL 语言的用户也可以很容易地使用。
只需进行简单地编程,就可在LabVIEW 中实现数据库访问。
它还有一个最大的优点是源代码开放,并且是全面免费的。
(注:LabSQL 的下载网址)。
在ACCESS数据库中,有很多SQL语句都不能执行。
ACCESS仅提供了CREATE,INSERT ,UPDATE,DELETE等基本的SQL语句。
这样使得在使用过程中我们还需要使用写属性节点来编程。
1. 如何利用LabSQL创建ACCESS数据库?在LabSQL中总是要指定DSN才能进行操作,因此,创建数据库就不太好办了,我们可以利用LabVIEW中的ActiveX技术来实现:注意:确定E:\Demo目录是否存在!当然,方法很多,这里提供一种,仅供参考。
2. 如何利用LabSQL重命名数据表名称?在其他的数据库里,有专门的重新命名的SQL语句,可是那些语句放到ACCESS有点找不到北了,我采用了下面的方面:分2步:先把表1里的内容全部拷贝出来,插入到表2;然后删除表1。
目录第1章引言—献给想用数据库而不懂数据库的工程师 (1)第2章边干边学数据库基础 (2)2.1 数据库简史 (2)2.2 建立数据源 (2)2.2.1 在Access中建立一个数据库 (2)2.2.2 建立与数据库的连接 (3)2.2.3 数据库连接的可移植性问题(高级话题) (7)2.3 数据库基本操作 (8)2.3.1 创建一个表格 (8)2.3.2 删除一个表格 (10)2.3.3 添加一条记录 (10)2.3.4 查询一条记录 (11)2.4 数据库高级操作 (12)2.4.1 在LabVIEW中执行SQL语言案例研究 (12)2.4.2 用SQL实现数据查询操作 (13)2.4.3 用SQL实现删除一条记录 (13)2.4.4 压缩数据库,释放多余空间 (14)2.4.5 用SQL实现修改数据操作 (15)2.5 本章总结 (16)第3章一个完整的数据库工程范例 (17)3.1 工程项目要求 (17)3.2 生成可执行文件(*.exe) (18)3.3 生成安装文件(Installer) (19)第4章后记 (22)i第1章引言—献给想用数据库而不懂数据库的工程师曾经在一个产品检测项目中,客户要求:当产品检测不合格时,记下该产品对应的序列号,测试时间和各项测试指标,并能对这些数据进行管理和查询。
由于自己没有系统的学习过数据库,所以第一时间想到的解决方案是用文件的方式(也只能把数据存成文件了)。
在使用文件进行数据储存与管理时,遇到了一个巨大的问题:如何查询数据?基本的文件IO函数中,并没有提供现成的查询函数,所以必须自己编程实现。
实现的过程是先将数据读入内存,然后再根据关键字进行线性查找,线性查找的时间复杂度为O(N),所以当数据量逐渐增大时,这将是一个非常可怕的过程。
这个不可逾越的障碍迫使我不得不再次考虑使用数据库。
想到这儿,我立即到天河书城买了两本网上评价为数据库经典的书《数据库系统概念》和《轻松掌握SQL》,回到办公室后立即开始学习起来。
LabVIEW 用LabSQL 做一个资料库的基本操作我是一个初学者,玩LabVIEW没有多久,我是想要开发一个自动仓储系统,后来,决定要搞大一点,写一个精简型的ERP放在自动仓储系统里面,本来用的是DCT,老是觉得不上手,后来在论坛上看到了ADO的方式好像不错,就试了试,可是又遇到范例太少的麻烦。
我觉得这些前辈没有考虑到初学者的痛苦,范例都是很不靠谱的,不是太繁杂就是信息太少,所以,我把这个VI的资料野人献曝一下,希望能够帮助到一些初学者。
首先,你得先把LabSQL下载,把它安装好。
LabSQL是利用Microsoft ADO以及SQL语言来完成数据库访问的。
只有你安装了MDAC(Microsoft Data Access Components),它包函了ADO ActiveX类,你的LabSQL才能正常使用。
LabVIEW安装目录中的user.lib文件夹中新建一个名为LabSQL的文件夹,并将下载得到的LabSQL.zip压缩文件中所有文件解压到这个文件夹中。
解压缩后的文件包括LabSQL ADO functions和Examples两个文件夹,以及ADO210.CHM和README_FIRST.txt两个文件。
再次运行时,LabVIEW的功能模块就会自动加载LabSQL。
再来,是把资料库设定好,把资料库用ODBC搞定。
再来,是去了解一下基本的SQL命令,下面是一些常用的SQL命令。
查询语句 -select * from table;select * from table where 条件1=数值and 条件2=数值;select * from table where id in (select id from table);两表关联select a.a,b.b,c.c from table1 a,table2 b,table3 c where a.id1=b.id2;插入语句-insert into table (字段1,字段2,字段3,……)values (数值1,数值2,数值3,……);更新语句-update 表名set 数值where=id = 1;添加列语句-alter table 表名add (列名1 类型1,列名2 类型2,列名3 类型3,……);修改列类型-alter table 表名modify (列名1 类型1,列名2 类型2,列名3 类型3,……);删除列语句-alter table 表名drop column 列名s;显示查询时间-set timing on;删除表语句-delete table 表名;清空表数据-truncate table 表名;修改列名- ALTER TABLE emp RENAME COLUMN comm TO newa;如果SQL学不来,可以利用ACCESS 2007的查询功能帮你把SQL命令做出来,操作如下步骤:先创建一个查询:再进入查询设计里面:选择你要的查询类型,再选择SQL视图:把产生SQL命令剪贴到LabVIEW 的VI里面,有可能还要修整一下才能用的。
目录第1章引言—献给想用数据库而不懂数据库的工程师 (1)第2章边干边学数据库基础 (2)2.1 数据库简史 (2)2.2 建立数据源 (2)2.2.1 在Access中建立一个数据库 (2)2.2.2 建立与数据库的连接 (3)2.2.3 数据库连接的可移植性问题(高级话题) (7)2.3 数据库基本操作 (8)2.3.1 创建一个表格 (8)2.3.2 删除一个表格 (10)2.3.3 添加一条记录 (10)2.3.4 查询一条记录 (11)2.4 数据库高级操作 (12)2.4.1 在LabVIEW中执行SQL语言案例研究 (12)2.4.2 用SQL实现数据查询操作 (13)2.4.3 用SQL实现删除一条记录 (13)2.4.4 压缩数据库,释放多余空间 (14)2.4.5 用SQL实现修改数据操作 (15)2.5 本章总结 (16)第3章一个完整的数据库工程范例 (17)3.1 工程项目要求 (17)3.2 生成可执行文件(*.exe) (18)3.3 生成安装文件(Installer) (19)第4章后记 (22)i第1章引言—献给想用数据库而不懂数据库的工程师曾经在一个产品检测项目中,客户要求:当产品检测不合格时,记下该产品对应的序列号,测试时间和各项测试指标,并能对这些数据进行管理和查询。
由于自己没有系统的学习过数据库,所以第一时间想到的解决方案是用文件的方式(也只能把数据存成文件了)。
在使用文件进行数据储存与管理时,遇到了一个巨大的问题:如何查询数据?基本的文件IO函数中,并没有提供现成的查询函数,所以必须自己编程实现。
实现的过程是先将数据读入内存,然后再根据关键字进行线性查找,线性查找的时间复杂度为O(N),所以当数据量逐渐增大时,这将是一个非常可怕的过程。
这个不可逾越的障碍迫使我不得不再次考虑使用数据库。
想到这儿,我立即到天河书城买了两本网上评价为数据库经典的书《数据库系统概念》和《轻松掌握SQL》,回到办公室后立即开始学习起来。
陌生的术语,难懂的理论;看了后一章便忘了前一章——非常痛苦但还是硬着头皮坚持到了下班。
这种痛苦再加上越来越近的项目交付日期,使我非常焦躁,心里终于有个声音爆发了出来“我不就是想要实现数据的保存,修改,删除和查询吗?我需要把那众多的数据库类型、复杂的关系模型、抽象的关系代数…都搞懂吗”实践后的答案是,不需要,一点都不需要。
我放弃了刚买的新书,打开了LabVIEW 数据库工具包的用户手册和范例程序,寻找着我期望的数据保存,修改,删除和查询功能。
到下班的时候,Everything goes well,基本掌握了用LabVIEW 数据库工具包进行数据保存,修改,删除和查询的方法。
回想起这段历程,突然有种想与大家一起分享的冲动——不懂数据库的工程师也可以玩转数据库,因为从应用的角度来看,我们的实际需求仅仅是数据的保存、修改、删除和查询,根本不需要去研究复杂的关系模型、抽象的关系代数、艰深的数据库设计…那基本与我们的初始目标南辕北辙。
借助LabVIEW 数据库链接工具包(Database Connectivity toolkit)可以站在应用的层次,很方便的操作数据库,实现数据的保存、修改、删除和查询等功能。
“学以致用,边学边用,急用先学,立竿见影”,在后续的章节中,我们先概览一下必需的与数据库相关的基本概念,然后在LabVIEW平台上一边学习,一边实践如何储存、管理和查询数据。
1第2章边干边学数据库基础2.1 数据库简史在20世纪60年代,第一个数据库管理系统(DBMS)发明以前,数据记录主要是通过磁盘或穿孔卡片,那时候,无论是数据的管理、查询或是存储都是一件非常痛苦的事情。
随着计算机开始广泛地应用于数据管理,数据共享要求也越来越高,传统的文件系统已经不能满足人们的需要,能够统一管理和共享数据的数据库管理系统应运而生。
第一个数据库是美国通用电气公司Bachman等人在1961年开发成功的IDS(Integrated DataStore),它奠定了数据库的基础,并在当时得到了广泛的发行和应用。
随后,在1970年,IBM的研究员E.F.Codd博士在刊物《Communication of the ACM》上发表了一篇名为“A Relational Model of Data for Large Shared Data Banks”的论文,提出了关系模型的概念,奠定了关系模型的理论基础。
这篇论文被普遍认为是数据库系统历史上具有划时代意义的里程碑。
Codd的心愿是为数据库建立一个优美的数据模型,后来Codd又陆续发表多篇文章,论述了范式理论和衡量关系系统的12条标准,用数学理论奠定了关系数据库的基础。
1974年,IBM的Ray Boyce和Don Chamberlin将Codd关系数据库的12条准则的数学定义以简单的关键字语法表现出来,提出了具有里程碑意义的SQL(Structured Query Language)语言。
SQL语言的功能包括查询、操纵、定义和控制,是一个综合的、通用的关系数据库语言,同时又是一种高度非过程化的语言,只要求用户指出做什么而不需要指出怎么做。
SQL语言的这个特点使之成为了一种真正的跨平台和跨产品的语言。
现今,数据库技术已经发展的比较成熟了,著名的数据库管理系统有SQL Server、Oracle、DB2、Sybase ASE、Visual ForPro、Microsoft Access等。
Microsoft Access是在Windows环境下非常流行的桌面型数据库管理系统,它作为Microsoft office组件之一,安装和使用都非常方便,并且支持SQL语言,所以本文将基于Access来介绍数据库的操作。
2.2 建立数据源实现数据库功能的第一步便是建立数据源,下面将详述整个过程。
2.2.1 在Access中建立一个数据库LabVIEW 数据库工具包只能操作而不能创建数据库,所以必须借助第三方数据库管理系统,比如Access,来创建数据库。
本文的大型数据库范例程序是iPhone测试,所以先建立一个名为iPhoneData.mdb的数据库文件,如图2.1所示。
2图2.1 创建Access数据库2.2.2 建立与数据库的连接在利用LabVIEW 数据库工具包操作数据库之前,需要先连接数据库,这就像操作文件之前,先要打开文件一样。
连接数据库有两种方法:1.利用DSN连接数据库LabVIEW 数据库工具包基于ODBC(Open Database Connectivity)技术,如图2.2所示,在使用ODBC API函数时,需要提供数据源名DSN(Data Source Names)才能连接到实际数据库,所以我们需要首先创建DSN。
图2.2 LabVIEW 数据库工具包基于ODBC技术【背景知识】ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。
这些API利用SQL来完成其大部分任务。
ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。
3在“Windows控制面板”中双击“管理工具”,然后双击“数据源”,进入ODBC数据源管理器,如图2.3所示。
图2.3 ODBC数据源管理器User DSN(用户数据源名)选项卡下建立的数据源名只有本用户才能访问,System DSN(系统数据源名)选项卡下建立的数据源名在该系统下的所有用户都可以访问。
User DSN选项卡下点击按钮,会弹出数据源驱动选择对话框,然后选择Microsoft Access Driver(*.mdb),如图2.4所示。
图2.4 数据源驱动选择对话框点击“Finish”按钮后,会弹出ODBC Microsoft Access Setup窗口,在Data Source Name填入一个名字,比如iPhoneData,然后在Database栏中单击Select按钮选择先前已经建立好的iPhoneData.mdb数据库文件,其它参数保持默认,单击OK按钮,如图2.5所示。
4图2.5 ODBC Microsoft Access Setup窗口完成上述设置后,就可以在User DSN选项卡下看到新建的DSN了。
单击OK按钮完成DNS的建立。
打开随本文的程序:ConnectionExample.vi,在DSN Name中填入刚建好的DSN名并运行,如图2.6所示。
图2.6 利用DSN连接数据库【注意】使用DSN连接数据库需要考虑移植问题,当你把代码发布到其它机器上时,需要手动为其重新建立一个DSN。
2.利用UDL连接数据库Microsoft设计的ODBC标准只能访问关系型数据库,对非关系型数据库则无能为力。
为解决这个问题,Microsoft还提供了另一种技术:Active数据对象ADO(ActiveX Data Objects)技术。
ADO是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。
ADO使用通用数据连接UDL(Universal Data Link)来获得数据库信息以实现数据库连接。
在iPhoneData.mdb所在的文件夹下点击鼠标右键->新建->Microsoft Data Link,如图2.7所示,并把文件命名为“iPhoneData.udl”。
5图2.7 新建UDL文件双击“iPhoneData.udl”,打开Data Link Properties对话框,在Provider选项卡中选择Microsoft Jet 4.0 OLE DB Provider,如图2.8所示,并点击Next>>按钮。
图2.8 选择Provider在Connection选项卡中,选择已建立好的数据库文件,然后点击Test Connection按钮,6如果没有什么问题的话,会弹出Test Connection succeeded的对话框,如图2.9所示。
图2.9 选择数据库源创建好UDL后,打开随本文的程序:ConnectionExample.vi 在DSN Name中填入刚建好的DSN 名并运行,如果成功的话,会如图2.10所示。
图2.10 利用UDL连接数据库2.2.3 数据库连接的可移植性问题(高级话题)用文本编辑器打开刚新建的“iPhoneData.udl”文件,其内容如下所示:[oledb]; Everything after this line is an OLE DB initstringProvider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\Doc\ApplicationNotes\DatabaseAppNotes\data\iPhoneData.mdb;Persist Security Info=False分号(;)后面的内容是注释可以不用搭理。