LabvIEW+SQL数据库运用.doc_第1页
LabvIEW+SQL数据库运用.doc_第2页
LabvIEW+SQL数据库运用.doc_第3页
LabvIEW+SQL数据库运用.doc_第4页
LabvIEW+SQL数据库运用.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

此文档收集于网络,如有侵权请联系网站删除 目录 第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 initstring Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:DocApplicationNotesDatabaseAppNotesdataiPhoneData.mdb;Persist Security Info=False the Renaissance 文艺复兴(时期)分号(;)后面的内容是注释可以不用搭理。Data Source后面是数据库的绝对路径,所以,当数据库文件位置变化后,程序就会出错。我们可以直接把“iPhoneData.udl”文件中的信息重新生成,然后传给DB Tools Open apparently adv. 显然地;显而易见地7 weaken vi. (对某事的决心)动摇;减弱Connection .vi,如图2.11所示。具体的实现可以参看本文附带的范例。rate n. 比率;速度图2.11 GetDBPath.vi 在后面的程序中,本文都将使用 GetDBPath.vi来获得数据库的位置信息,然后传给DB Tools Open Connection .vi。2.3 数据库基本操作contemporary adj. 当代的;连接上数据库之后,就可以对数据库进行操作了。本节主要介绍数据库最常用的几种基本操作,包括创建表格、删除表格、添加记录、查询记录。假想的;虚构的2.3.1 创建一个表格数据库是以表的形式来记录数据的,如图2.12所示,大家可以用Access打开一个数据库文件来体验一下。bathe vi. 洗澡;游泳图2.12 数据库里的表格adj.通常的;例行的数据表的每一行,表示一条记录(Record);每一列,表示记录中的字段(Field),说的通俗点就是记录中的一项内容,比如测试时间。能够唯一标识表中某一行的属性或属性组,叫主键(Primary Key),一个表只能有一个主键,但可以有多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。创建数据表由LabVIEW 数据库工具包中的实现。参数中的Table,为被创建的数据表表名,Column Information指定表格每一列的属性,如图2.13所示。 drown vt. & vi. 淹没;溺死;淹死8 图2.13 column information haiku n. 俳句需要注意的是column information中的Data type设置部分,LabVIEW的数据类型有许多种,而这里的Data type选项只有几种,所以必须清楚LabVIEW数据类型和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论