国产强伦姧在线观看无码,中文字幕99久久亚洲精品,国产精品乱码在线观看,色桃花亚洲天堂视频久久,日韩精品无码观看视频免费

      深入淺出LabVIEW數(shù)據(jù)庫(kù)應(yīng)用

      2015年12月26日
      資料類(lèi)型rar文件資料大小1912637
      下載次數(shù)137資料圖片【點(diǎn)擊查看】
      上 傳 人北京市瀚文網(wǎng)星科技有限責(zé)任公司 需要積分0
      關(guān) 鍵 詞LabVIEW,LabVIEW數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)
      【資料簡(jiǎn)介】

      目錄
      第1章引言—獻(xiàn)給想用數(shù)據(jù)庫(kù)而不懂?dāng)?shù)據(jù)庫(kù)的工程師..........................................1
      第2章邊干邊學(xué)數(shù)據(jù)庫(kù)基礎(chǔ)......................................................................................2
      2.1 數(shù)據(jù)庫(kù)簡(jiǎn)史...................................................................................................................2
      2.2 建立數(shù)據(jù)源...................................................................................................................2
      2.2.1 在Access中建立一個(gè)數(shù)據(jù)庫(kù)............................................................................2
      2.2.2 建立與數(shù)據(jù)庫(kù)的連接.......................................................................................3
      2.2.3 數(shù)據(jù)庫(kù)連接的可移植性問(wèn)題(話(huà)題)...................................................7
      2.3 數(shù)據(jù)庫(kù)基本操作...........................................................................................................8
      2.3.1 創(chuàng)建一個(gè)表格...................................................................................................8
      2.3.2 刪除一個(gè)表格.................................................................................................10
      2.3.3 添加一條記錄.................................................................................................10
      2.3.4 查詢(xún)一條記錄.................................................................................................11
      2.4 數(shù)據(jù)庫(kù)操作.........................................................................................................12
      2.4.1 在LabVIEW中執(zhí)行SQL語(yǔ)言案例研究.........................................................12
      2.4.2 用SQL實(shí)現(xiàn)數(shù)據(jù)查詢(xún)操作.............................................................................13
      2.4.3 用SQL實(shí)現(xiàn)刪除一條記錄.............................................................................13
      2.4.4 壓縮數(shù)據(jù)庫(kù),釋放多余空間.........................................................................14
      2.4.5 用SQL實(shí)現(xiàn)修改數(shù)據(jù)操作.............................................................................15
      2.5 本章總結(jié).....................................................................................................................16
      第3章一個(gè)完整的數(shù)據(jù)庫(kù)工程范例........................................................................17
      3.1 工程項(xiàng)目要求.............................................................................................................17
      3.2 生成可執(zhí)行文件(*.exe)..............................................................................................18
      3.3 生成安裝文件(Installer).............................................................................................19
      第4章后記................................................................................................................22
      i
      第1章 引言—獻(xiàn)給想用數(shù)據(jù)庫(kù)而不懂?dāng)?shù)據(jù)庫(kù)的工程師
      曾經(jīng)在一個(gè)產(chǎn)品檢測(cè)項(xiàng)目中,客戶(hù)要求:當(dāng)產(chǎn)品檢測(cè)不合格時(shí),記下該產(chǎn)品對(duì)應(yīng)的序列號(hào),測(cè)試時(shí)間和各項(xiàng)測(cè)試指標(biāo),并能對(duì)這些數(shù)據(jù)進(jìn)行管理和查詢(xún)。由于自己沒(méi)有系統(tǒng)的學(xué)習(xí)過(guò)數(shù)據(jù)庫(kù),所以*時(shí)間想到的解決方案是用文件的方式(也只能把數(shù)據(jù)存成文件了)。在使用文件進(jìn)行數(shù)據(jù)儲(chǔ)存與管理時(shí),遇到了一個(gè)巨大的問(wèn)題:如何查詢(xún)數(shù)據(jù)?基本的文件IO函數(shù)中,并沒(méi)有提供現(xiàn)成的查詢(xún)函數(shù),所以必須自己編程實(shí)現(xiàn)。實(shí)現(xiàn)的過(guò)程是先將數(shù)據(jù)讀入內(nèi)存,然后再根據(jù)關(guān)鍵字進(jìn)行線(xiàn)性查找,線(xiàn)性查找的時(shí)間復(fù)雜度為O(N),所以當(dāng)數(shù)據(jù)量逐漸增大時(shí),這將是一個(gè)非??膳碌倪^(guò)程。這個(gè)不可逾越的障礙迫使我不得不再次考慮使用數(shù)據(jù)庫(kù)。
      想到這兒,我立即到天河書(shū)城買(mǎi)了兩本網(wǎng)上評(píng)價(jià)為數(shù)據(jù)庫(kù)經(jīng)典的書(shū)《數(shù)據(jù)庫(kù)系統(tǒng)概念》和《輕松掌握SQL》,回到辦公室后立即開(kāi)始學(xué)習(xí)起來(lái)。陌生的術(shù)語(yǔ),難懂的理論;看了后一章便忘了前一章——非常痛苦但還是硬著頭皮堅(jiān)持到了下班。
      這種痛苦再加上越來(lái)越近的項(xiàng)目交付日期,使我非常焦躁,心里終于有個(gè)聲音爆發(fā)了出來(lái)“我不就是想要實(shí)現(xiàn)數(shù)據(jù)的保存,修改,刪除和查詢(xún)嗎?我需要把那眾多的數(shù)據(jù)庫(kù)類(lèi)型、復(fù)雜的關(guān)系模型、抽象的關(guān)系代數(shù)…都搞懂嗎???”實(shí)踐后的答案是,不需要,一點(diǎn)都不需要。
      我放棄了剛買(mǎi)的新書(shū),打開(kāi)了LabVIEW 數(shù)據(jù)庫(kù)工具包的用戶(hù)手冊(cè)和范例程序,尋找著我期望的數(shù)據(jù)保存,修改,刪除和查詢(xún)功能。到下班的時(shí)候,Everything goes well,基本掌握了用LabVIEW 數(shù)據(jù)庫(kù)工具包進(jìn)行數(shù)據(jù)保存,修改,刪除和查詢(xún)的方法。
      回想起這段歷程,突然有種想與大家一起分享的沖動(dòng)——不懂?dāng)?shù)據(jù)庫(kù)的工程師也可以玩轉(zhuǎn)數(shù)據(jù)庫(kù),因?yàn)閺膽?yīng)用的角度來(lái)看,我們的實(shí)際需求僅僅是數(shù)據(jù)的保存、修改、刪除和查詢(xún),根本不需要去研究復(fù)雜的關(guān)系模型、抽象的關(guān)系代數(shù)、艱深的數(shù)據(jù)庫(kù)設(shè)計(jì)…那基本與我們的初始目標(biāo)南轅北轍。借助LabVIEW 數(shù)據(jù)庫(kù)鏈接工具包(Database Connectivity toolkit)可以站在應(yīng)用的層次,很方便的操作數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)的保存、修改、刪除和查詢(xún)等功能。
      “學(xué)以致用,邊學(xué)邊用,急用先學(xué),*”,在后續(xù)的章節(jié)中,我們先概覽一下必需的與數(shù)據(jù)庫(kù)相關(guān)的基本概念,然后在LabVIEW平臺(tái)上一邊學(xué)習(xí),一邊實(shí)踐如何儲(chǔ)存、管理和查詢(xún)數(shù)據(jù)。
      1
      第2章 邊干邊學(xué)數(shù)據(jù)庫(kù)基礎(chǔ)
      2.1 數(shù)據(jù)庫(kù)簡(jiǎn)史
      在20世紀(jì)60年代,*個(gè)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)發(fā)明以前,數(shù)據(jù)記錄主要是通過(guò)磁盤(pán)或穿孔卡片,那時(shí)候,無(wú)論是數(shù)據(jù)的管理、查詢(xún)或是存儲(chǔ)都是一件非常痛苦的事情。隨著計(jì)算機(jī)開(kāi)始廣泛地應(yīng)用于數(shù)據(jù)管理,數(shù)據(jù)共享要求也越來(lái)越高,傳統(tǒng)的文件系統(tǒng)已經(jīng)不能滿(mǎn)足人們的需要,能夠統(tǒng)一管理和共享數(shù)據(jù)的數(shù)據(jù)庫(kù)管理系統(tǒng)應(yīng)運(yùn)而生。*個(gè)數(shù)據(jù)庫(kù)是美國(guó)通用電氣公司Bachman等人在1961年開(kāi)發(fā)成功的IDS(Integrated DataStore),它奠定了數(shù)據(jù)庫(kù)的基礎(chǔ),并在當(dāng)時(shí)得到了廣泛的發(fā)行和應(yīng)用。
      隨后,在1970年,IBM的研究員E.F.Codd博士在刊物《Communication of the ACM》上發(fā)表了一篇名為“A Relational Model of Data for Large Shared Data Banks”的論文,提出了關(guān)系模型的概念,奠定了關(guān)系模型的理論基礎(chǔ)。這篇論文被普遍認(rèn)為是數(shù)據(jù)庫(kù)系統(tǒng)歷*具有劃時(shí)代意義的里程碑。Codd的心愿是為數(shù)據(jù)庫(kù)建立一個(gè)優(yōu)美的數(shù)據(jù)模型,后來(lái)Codd又陸續(xù)發(fā)表多篇文章,論述了范式理論和衡量關(guān)系系統(tǒng)的12條標(biāo)準(zhǔn),用數(shù)學(xué)理論奠定了關(guān)系數(shù)據(jù)庫(kù)的基礎(chǔ)。
      1974年,IBM的Ray Boyce和Don Chamberlin將Codd關(guān)系數(shù)據(jù)庫(kù)的12條準(zhǔn)則的數(shù)學(xué)定義以簡(jiǎn)單的關(guān)鍵字語(yǔ)法表現(xiàn)出來(lái),提出了具有里程碑意義的SQL(Structured Query Language)語(yǔ)言。SQL語(yǔ)言的功能包括查詢(xún)、操縱、定義和控制,是一個(gè)綜合的、通用的關(guān)系數(shù)據(jù)庫(kù)語(yǔ)言,同時(shí)又是一種高度非過(guò)程化的語(yǔ)言,只要求用戶(hù)指出做什么而不需要指出怎么做。SQL語(yǔ)言的這個(gè)特點(diǎn)使之成為了一種真正的跨平臺(tái)和跨產(chǎn)品的語(yǔ)言。
      現(xiàn)今,數(shù)據(jù)庫(kù)技術(shù)已經(jīng)發(fā)展的比較成熟了,的數(shù)據(jù)庫(kù)管理系統(tǒng)有SQL Server、Oracle、DB2、Sybase ASE、Visual ForPro、Microsoft Access等。Microsoft Access是在Windows環(huán)境下非常流行的桌面型數(shù)據(jù)庫(kù)管理系統(tǒng),它作為Microsoft office組件之一,安裝和使用都非常方便,并且支持SQL語(yǔ)言,所以本文將基于Access來(lái)介紹數(shù)據(jù)庫(kù)的操作。
      2.2 建立數(shù)據(jù)源
      實(shí)現(xiàn)數(shù)據(jù)庫(kù)功能的*步便是建立數(shù)據(jù)源,下面將詳述整個(gè)過(guò)程。
      2.2.1 在Access中建立一個(gè)數(shù)據(jù)庫(kù)
      LabVIEW 數(shù)據(jù)庫(kù)工具包只能操作而不能創(chuàng)建數(shù)據(jù)庫(kù),所以必須借助第三方數(shù)據(jù)庫(kù)管理系統(tǒng),比如Access,來(lái)創(chuàng)建數(shù)據(jù)庫(kù)。本文的大型數(shù)據(jù)庫(kù)范例程序是iPhone測(cè)試,所以先建立一個(gè)名為iPhoneData.mdb的數(shù)據(jù)庫(kù)文件,如圖2.1所示。
      2
      圖2.1 創(chuàng)建Access數(shù)據(jù)庫(kù)
      2.2.2 建立與數(shù)據(jù)庫(kù)的連接
      在利用LabVIEW 數(shù)據(jù)庫(kù)工具包操作數(shù)據(jù)庫(kù)之前,需要先連接數(shù)據(jù)庫(kù),這就像操作文件之前,先要打開(kāi)文件一樣。連接數(shù)據(jù)庫(kù)有兩種方法:
      1. 利用DSN連接數(shù)據(jù)庫(kù)
      LabVIEW 數(shù)據(jù)庫(kù)工具包基于ODBC(Open Database Connectivity)技術(shù),如圖2.2所示,在使用ODBC API函數(shù)時(shí),需要提供數(shù)據(jù)源名DSN(Data Source Names)才能連接到實(shí)際數(shù)據(jù)庫(kù),所以我們需要首先創(chuàng)建DSN。
      圖2.2 LabVIEW 數(shù)據(jù)庫(kù)工具包基于ODBC技術(shù)
      【背景知識(shí)】ODBC(Open Database Connectivity,開(kāi)放數(shù)據(jù)庫(kù)互連)是微軟公司開(kāi)放服務(wù)結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中有關(guān)數(shù)據(jù)庫(kù)的一個(gè)組成部分,它建立了一組規(guī)范,并提供了一組對(duì)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用SQL來(lái)完成其大部分任務(wù)。ODBC本身也提供了對(duì)SQL語(yǔ)言的支持,用戶(hù)可以直接將SQL語(yǔ)句送給ODBC。
      3
      在“Windows控制面板”中雙擊“管理工具”,然后雙擊“數(shù)據(jù)源”,進(jìn)入ODBC數(shù)據(jù)源管理器,如圖2.3所示。
      圖2.3 ODBC數(shù)據(jù)源管理器
      User DSN(用戶(hù)數(shù)據(jù)源名)選項(xiàng)卡下建立的數(shù)據(jù)源名只有本用戶(hù)才能訪(fǎng)問(wèn),System DSN(系統(tǒng)數(shù)據(jù)源名)選項(xiàng)卡下建立的數(shù)據(jù)源名在該系統(tǒng)下的所有用戶(hù)都可以訪(fǎng)問(wèn)。User DSN選項(xiàng)卡下點(diǎn)擊按鈕,會(huì)彈出數(shù)據(jù)源驅(qū)動(dòng)選擇對(duì)話(huà)框,然后選擇Microsoft Access Driver(*.mdb),如圖2.4所示。
      圖2.4 數(shù)據(jù)源驅(qū)動(dòng)選擇對(duì)話(huà)框
      點(diǎn)擊“Finish”按鈕后,會(huì)彈出ODBC Microsoft Access Setup窗口,在Data Source Name填入一個(gè)名字,比如iPhoneData,然后在Database欄中單擊Select按鈕選擇先前已經(jīng)建立好的iPhoneData.mdb數(shù)據(jù)庫(kù)文件,其它參數(shù)保持默認(rèn),單擊OK按鈕,如圖2.5所示。
      4
      圖2.5 ODBC Microsoft Access Setup窗口
      完成上述設(shè)置后,就可以在User DSN選項(xiàng)卡下看到新建的DSN了。單擊OK按鈕完成DNS的建立。打開(kāi)隨本文的程序:ConnectionExample.vi,在DSN Name中填入剛建好的DSN名并運(yùn)行,如圖2.6所示。
      圖2.6 利用DSN連接數(shù)據(jù)庫(kù)
      【注意】使用DSN連接數(shù)據(jù)庫(kù)需要考慮移植問(wèn)題,當(dāng)你把代碼發(fā)布到其它機(jī)器上時(shí),需要手動(dòng)為其重新建立一個(gè)DSN。
      2. 利用UDL連接數(shù)據(jù)庫(kù)
      Microsoft設(shè)計(jì)的ODBC標(biāo)準(zhǔn)只能訪(fǎng)問(wèn)關(guān)系型數(shù)據(jù)庫(kù),對(duì)非關(guān)系型數(shù)據(jù)庫(kù)則無(wú)能為力。為解決這個(gè)問(wèn)題,Microsoft還提供了另一種技術(shù):Active數(shù)據(jù)對(duì)象ADO(ActiveX Data Objects)技術(shù)。ADO是Microsoft提出的應(yīng)用程序接口(API)用以實(shí)現(xiàn)訪(fǎng)問(wèn)關(guān)系或非關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)。ADO使用通用數(shù)據(jù)連接UDL(Universal Data Link)來(lái)獲得數(shù)據(jù)庫(kù)信息以實(shí)現(xiàn)數(shù)據(jù)庫(kù)連接。
      在iPhoneData.mdb所在的文件夾下點(diǎn)擊鼠標(biāo)右鍵->新建->Microsoft Data Link,如圖2.7所示,并把文件命名為“iPhoneData.udl”。
      5
      圖2.7 新建UDL文件
      雙擊“iPhoneData.udl”,打開(kāi)Data Link Properties對(duì)話(huà)框,在Provider選項(xiàng)卡中選擇Microsoft Jet 4.0 OLE DB Provider,如圖2.8所示,并點(diǎn)擊Next>>按鈕。
      圖2.8 選擇Provider
      在Connection選項(xiàng)卡中,選擇已建立好的數(shù)據(jù)庫(kù)文件,然后點(diǎn)擊Test Connection按鈕,
      6
      如果沒(méi)有什么問(wèn)題的話(huà),會(huì)彈出Test Connection succeeded的對(duì)話(huà)框,如圖2.9所示。
      圖2.9 選擇數(shù)據(jù)庫(kù)源
      創(chuàng)建好UDL后,打開(kāi)隨本文的程序:ConnectionExample.vi 在DSN Name中填入剛建好的DSN名并運(yùn)行,如果成功的話(huà),會(huì)如圖2.10所示。
      圖2.10 利用UDL連接數(shù)據(jù)庫(kù)
      2.2.3 數(shù)據(jù)庫(kù)連接的可移植性問(wèn)題(話(huà)題)
      用文本編輯器打開(kāi)剛新建的“iPhoneData.udl”文件,其內(nèi)容如下所示:
      [oledb]
      ; Everything after this line is an OLE DB initstring
      Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Doc\ApplicationNotes\DatabaseAppNotes\data\iPhoneData.mdb;Persist Security Info=False
      分號(hào)(;)后面的內(nèi)容是注釋可以不用搭理。Data Source后面是數(shù)據(jù)庫(kù)的路徑,所以,當(dāng)數(shù)據(jù)庫(kù)文件位置變化后,程序就會(huì)出錯(cuò)。
      我們可以直接把“iPhoneData.udl”文件中的信息重新生成,然后傳給DB Tools Open 7
      Connection .vi,如圖2.11所示。具體的實(shí)現(xiàn)可以參看本文附帶的范例。
      圖2.11 GetDBPath.vi
      在后面的程序中,本文都將使用 GetDBPath.vi來(lái)獲得數(shù)據(jù)庫(kù)的位置信息,然后傳給DB Tools Open Connection .vi。
      2.3 數(shù)據(jù)庫(kù)基本操作
      連接上數(shù)據(jù)庫(kù)之后,就可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作了。本節(jié)主要介紹數(shù)據(jù)庫(kù)zui常用的幾種基本操作,包括創(chuàng)建表格、刪除表格、添加記錄、查詢(xún)記錄。
      2.3.1 創(chuàng)建一個(gè)表格
      數(shù)據(jù)庫(kù)是以表的形式來(lái)記錄數(shù)據(jù)的,如圖2.12所示,大家可以用Access打開(kāi)一個(gè)數(shù)據(jù)庫(kù)文件來(lái)體驗(yàn)一下。
      圖2.12 數(shù)據(jù)庫(kù)里的表格
      數(shù)據(jù)表的每一行,表示一條記錄(Record);每一列,表示記錄中的字段(Field),說(shuō)的通俗點(diǎn)就是記錄中的一項(xiàng)內(nèi)容,比如測(cè)試時(shí)間。能夠*標(biāo)識(shí)表中某一行的屬性或?qū)傩越M,叫主鍵(Primary Key),一個(gè)表只能有一個(gè)主鍵,但可以有多個(gè)候選索引。因?yàn)橹麈I可以*標(biāo)識(shí)某一行記錄,所以可以確保執(zhí)行數(shù)據(jù)更新、刪除的時(shí)候不會(huì)出現(xiàn)張冠李戴的錯(cuò)誤。
      創(chuàng)建數(shù)據(jù)表由LabVIEW 數(shù)據(jù)庫(kù)工具包中的實(shí)現(xiàn)。參數(shù)中的Table,為被創(chuàng)建的數(shù)據(jù)表表名,Column Information表格每一列的屬性,如圖2.13所示。
      8
      圖2.13 column information
      需要注意的是column information中的Data type設(shè)置部分,LabVIEW的數(shù)據(jù)類(lèi)型有許多種,而這里的Data type選項(xiàng)只有幾種,所以必須清楚LabVIEW數(shù)據(jù)類(lèi)型和Column information中的Data type的對(duì)應(yīng)關(guān)系,如表2.1所示。
      表2.1 對(duì)應(yīng)關(guān)系
      LabVIEW 數(shù)據(jù)類(lèi)型
      數(shù)據(jù)庫(kù)數(shù)據(jù)類(lèi)型
      Number
      Number
      String/Path
      String
      Array
      Binary
      Cluster
      Binary
      Boolean
      String or Number
      Enum
      Number
      Variant
      Binary
      Picture control
      Binary
      WDT
      Binary
      Refnum
      Not supported
      I/O Channel
      String
      Complex Numbers
      Binary
      知道了這個(gè)對(duì)應(yīng)關(guān)系后,創(chuàng)建數(shù)據(jù)庫(kù)表格便是一件很容易的事情,范例程序如圖2.14所示,具體代碼請(qǐng)參考CreateTable.vi。
      圖2.14 創(chuàng)建數(shù)據(jù)庫(kù)表格代碼
      9
      如果數(shù)據(jù)庫(kù)表格創(chuàng)建成功,大家可以用Access打開(kāi)數(shù)據(jù)庫(kù),看到自己創(chuàng)建的表格。
      2.3.2 刪除一個(gè)表格
      與數(shù)據(jù)庫(kù)表格創(chuàng)建相對(duì)應(yīng)的是數(shù)據(jù)庫(kù)表格刪除,由實(shí)現(xiàn)。將需要?jiǎng)h除的數(shù)據(jù)庫(kù)的名字告訴DB Tools Drop Table.vi即可完成數(shù)據(jù)庫(kù)表格的刪除操作。具體實(shí)現(xiàn)如圖2.15所示。
      圖2.15 刪除數(shù)據(jù)表格
      【分享】表格創(chuàng)建和刪除的參數(shù)非常相似,可以很方便的在一個(gè)VI里面同時(shí)實(shí)現(xiàn)表格的創(chuàng)建和刪除操作。
      2.3.3 添加一條記錄
      添加一條記錄由來(lái)實(shí)現(xiàn),DB Tools Insert Data.vi需要三個(gè)主要的參數(shù):table(數(shù)據(jù)表名)告訴DB Tools Insert Data.vi往數(shù)據(jù)庫(kù)里的哪個(gè)表格插入數(shù)據(jù);data,告訴DB Tools Insert Data.vi插入什么數(shù)據(jù);columns對(duì)應(yīng)插入的列的名字,其數(shù)據(jù)類(lèi)型是一個(gè)字符串?dāng)?shù)組。添加記錄的范例程序如圖2.16所示。
      圖2.16 添加一條記錄
      LabVIEW 數(shù)據(jù)庫(kù)工具包提供了一個(gè)工具VI,可以把數(shù)據(jù)表的column名字讀出來(lái)傳給DB Tools Insert Data.vi,這樣可以省去手動(dòng)輸入column名字的工作。
      10
      2.3.4 查詢(xún)一條記錄
      數(shù)據(jù)能存儲(chǔ)到數(shù)據(jù)庫(kù)之后,下一個(gè)要考慮的操作即是如何把數(shù)據(jù)讀出。把數(shù)據(jù)從數(shù)據(jù)庫(kù)中讀出的VI是,我們只需要告訴DB Tools Select Data.vi讀取哪個(gè)數(shù)據(jù)表格,DB Tools Select Data.vi就會(huì)把該表格中的所有數(shù)據(jù)讀出來(lái),如圖2.17所示。
      圖2.17 從數(shù)據(jù)庫(kù)中讀出數(shù)據(jù)
      從讀出的數(shù)據(jù)是動(dòng)態(tài)數(shù)據(jù)類(lèi)型,需要通過(guò)函數(shù)把動(dòng)態(tài)數(shù)據(jù)類(lèi)型轉(zhuǎn)換成正確的數(shù)據(jù)類(lèi)型。
      大多數(shù)情況下,我們并不需要把數(shù)據(jù)庫(kù)中的數(shù)據(jù)全部讀出來(lái)。比如,數(shù)據(jù)庫(kù)中已經(jīng)有1000條記錄了,每次都要把1000條記錄讀出來(lái),費(fèi)時(shí)費(fèi)力。
      LabVIEW 數(shù)據(jù)庫(kù)工具包*支持SQL語(yǔ)言,在的optional clause輸入端按照SQL語(yǔ)法輸入條件語(yǔ)句,即可讀出感興趣的數(shù)據(jù)。SQL語(yǔ)言非常簡(jiǎn)單,如果從來(lái)沒(méi)有接觸過(guò)SQL語(yǔ)言,可以花一點(diǎn)時(shí)間學(xué)習(xí)一下。LabVIEW 數(shù)據(jù)庫(kù)工具包的用戶(hù)手冊(cè)附錄A上有SQL的快速參考手冊(cè)。SQL的條件查詢(xún)語(yǔ)法格式如圖2.18所示。
      圖2.18 SQL的條件查詢(xún)語(yǔ)法格式
      11
      已經(jīng)把SELECT語(yǔ)句預(yù)先集成好了,我們只需要在optional clause輸入端加入WHERE語(yǔ)句部分即可,如圖2.19所示。范例程序從TestResult這張表里把字段TestTime等于字符串“2008-8-27 16:24:34”的記錄讀出來(lái)。
      圖2.19 讀出感興趣的數(shù)據(jù)
      【參考知識(shí)】WHERE語(yǔ)句可包括各種條件運(yùn)算符:
      比較運(yùn)算符(大小比較):>、>=、=、<、<=、<>、!>、!<
      范圍運(yùn)算符(表達(dá)式值是否在的范圍):BETWEEN…AND… NOT BETWEEN…AND…
      列表運(yùn)算符(判斷表達(dá)式是否為列表中的項(xiàng)):IN (項(xiàng)1,項(xiàng)2……) NOT IN (項(xiàng)1,項(xiàng)2……)
      模式匹配符(判斷值是否與的字符通配格式相符):LIKE、NOT LIKE
      空值判斷符(判斷表達(dá)式是否為空):IS NULL、NOT IS NULL
      邏輯運(yùn)算符(用于多條件的邏輯連接):NOT、AND、OR
      2.4 數(shù)據(jù)庫(kù)操作
      數(shù)據(jù)庫(kù)操作除了創(chuàng)建表格、刪除表格、添加記錄、查詢(xún)記錄外,常用的還有刪除記錄、更新現(xiàn)有數(shù)據(jù)等操作。由于這些操作并沒(méi)有現(xiàn)成的VI,所以需要借助SQL語(yǔ)言來(lái)實(shí)現(xiàn)。
      2.4.1 在LabVIEW中執(zhí)行SQL語(yǔ)言案例研究
      如前所述,絕大部分DBMS都支持SQL語(yǔ)言,LabVIEW 數(shù)據(jù)庫(kù)工具包實(shí)現(xiàn)的實(shí)質(zhì)也是基于SQL語(yǔ)言,它為不熟悉SQL語(yǔ)言的用戶(hù)把SQL語(yǔ)言封裝了起來(lái),以方便他們使用。2.3節(jié)的操作都是基于已封裝好的VI。
      雙擊,打開(kāi)它的程序框圖,如圖2.20所示,讓我們一起來(lái)研究一下它的實(shí)現(xiàn)過(guò)程。
      圖2.20 DB Tools Select Data的代碼實(shí)現(xiàn)
      12
      如圖2.20所示,DB Tools Select Data.vi先創(chuàng)建了SQL語(yǔ)句,然后用來(lái)執(zhí)行SQL語(yǔ)句,以此實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。
      在本節(jié)中,我們也沿用這種模式,直接用SQL來(lái)實(shí)現(xiàn)LabVIEW 數(shù)據(jù)庫(kù)工具包中沒(méi)有提供的功能。
      2.4.2 用SQL實(shí)現(xiàn)數(shù)據(jù)查詢(xún)操作
      了解了LabVIEW如何執(zhí)行SQL語(yǔ)言后,我們可以重新實(shí)現(xiàn)2.3.4查詢(xún)一條記錄的功能,范例程序如圖2.21所示。
      圖2.21 用SQL查詢(xún)記錄
      2.4.3 用SQL實(shí)現(xiàn)刪除一條記錄
      通過(guò)查閱SQL參考手冊(cè),我們知道刪除一條記錄的語(yǔ)句是“dee”,其語(yǔ)法為:
      DELETE FROM table_name
      WHERE column_name = some_value
      參考圖2.21,我們很容易實(shí)現(xiàn)刪除一條記錄的操作,如圖2.22所示。
      圖2.22 刪除一條記錄
      在使用“dee”語(yǔ)句時(shí),需要注意:
      1. “dee”語(yǔ)句不能刪除單個(gè)字段的值,只能刪除一行、多行、所有行或一行也不刪除;
      2. “dee”語(yǔ)句僅能刪除記錄,不能刪除表本身;刪除表要用“drop”語(yǔ)句,這也是為什么LabVIEW 數(shù)據(jù)庫(kù)工具包中刪除表的VI叫Drop Table。
      13
      2.4.4 壓縮數(shù)據(jù)庫(kù),釋放多余空間
      刪除了記錄后,你會(huì)驚奇的發(fā)現(xiàn)數(shù)據(jù)庫(kù)文件并沒(méi)有減小,就算把所有的數(shù)據(jù)全部都刪除掉,結(jié)果也一樣。這是因?yàn)閿?shù)據(jù)庫(kù)在使用一段時(shí)間后,時(shí)常會(huì)出現(xiàn)因數(shù)據(jù)刪除而造成數(shù)據(jù)庫(kù)中空閑空間太多的情況,這時(shí)就需要減少分配給數(shù)據(jù)庫(kù)文件和事務(wù)日志文件的磁盤(pán)空間,以免浪費(fèi)磁盤(pán)空間。
      Microsoft提供了一個(gè)壓縮數(shù)據(jù)庫(kù)的方法,請(qǐng)參考How To Compact Microsoft Access Database Through ADO。其基本思想是,使用ADO的擴(kuò)展: Microsoft Jet OLE DB Provider and Replication Objects (JRO)中的方法:CompactDatabase。Jet對(duì)象在文件Msjro.dll里面,如圖2.23所示。
      圖2.23 Msjro.dll文件
      下面將簡(jiǎn)單介紹一下在LabVIEW中訪(fǎng)問(wèn)Jet對(duì)象的方法:
      在前面板上放一個(gè),在右鍵菜單中選擇”Select Active Class”->”Browe…”,如圖2.24所示。
      圖2.24 選擇Jet Engine
      在彈出的Select Object From Type Library窗口中點(diǎn)擊Browse按鈕,按照?qǐng)D2.24所示的路徑選擇Msjro.dll。然后在Objects選擇框中選擇JetEngine(JRO.JetEngine.2.6),點(diǎn)擊OK按鈕,如圖2.25所示。
      14
      圖2.25 選擇Jet對(duì)象
      在程序框圖中放置一個(gè)方法節(jié)點(diǎn),并選擇方法CompressDatabase,如圖2.26所示。到此為止,就實(shí)現(xiàn)了在LabVIEW中調(diào)用Jet對(duì)象的CompressDatabase方法。
      圖2.26 調(diào)用CompressDatabase方法
      由于這個(gè)方法僅僅對(duì)原數(shù)據(jù)庫(kù)做了一個(gè)壓縮后的備份,所以,還需要把原文件移除,用這個(gè)備份來(lái)替代原數(shù)據(jù)庫(kù)文件。詳細(xì)實(shí)現(xiàn)請(qǐng)參考Access File Compress Database.vi。
      2.4.5 用SQL實(shí)現(xiàn)修改數(shù)據(jù)操作
      SQL中,修改一條記錄的語(yǔ)句是“update”,其語(yǔ)法為:
      UPDATE table_name
      SET column_name = new_value
      WHERE column_name = some_value
      修改一條記錄的范例程序,如圖2.27所示:
      15
      圖2.27 修改一條記錄
      2.5 本章總結(jié)
      本章介紹了大多數(shù)zui常用的數(shù)據(jù)庫(kù)操作及在LabVIEW平臺(tái)下的實(shí)現(xiàn)方法。SQL語(yǔ)言是一種數(shù)據(jù)庫(kù)操作的通用語(yǔ)言,不僅在LabVIEW數(shù)據(jù)庫(kù)工具包中可以用到,在其它語(yǔ)言(如VB,VC)平臺(tái)下也可以使用。希望大家通過(guò)上面的操作不僅學(xué)習(xí)了LabVIEW數(shù)據(jù)庫(kù)工具包,也熟悉了SQL語(yǔ)言。
      16
      第3章 一個(gè)完整的數(shù)據(jù)庫(kù)工程范例
      本章將給出一個(gè)工程項(xiàng)目,用于對(duì)本文介紹的知識(shí)進(jìn)行消化和總結(jié)。
      3.1 工程項(xiàng)目要求
      讀者學(xué)完labVIEW數(shù)據(jù)庫(kù)工具包后,可以按照如下要求,實(shí)現(xiàn)一個(gè)測(cè)試項(xiàng)目工程:
      1. 測(cè)試iPhone的Power是否合格;
      2. 測(cè)試iPhone耳機(jī)的THD曲線(xiàn);
      3. 測(cè)試iPhone的觸摸屏;
      4. 測(cè)試iPhone麥克風(fēng)的聲壓級(jí)(SPL);
      5. 完成測(cè)試后,把這些測(cè)試結(jié)果記錄到數(shù)據(jù)庫(kù)中;
      6. 能夠讀入數(shù)據(jù)庫(kù),并能按要求檢索數(shù)據(jù);
      7. 能按照測(cè)試時(shí)間等內(nèi)容對(duì)結(jié)果進(jìn)行升序或降序排列。
      該工程項(xiàng)目的界面如圖3.1和圖3.2所示。
      圖3.1 iPhone測(cè)試界面
      17
      圖3.2 iPhone測(cè)試數(shù)據(jù)分析界面
      具體代碼可以參考隨本文的范例:DatabaseExample.lvprj。
      3.2 生成可執(zhí)行文件(*.exe)
      在2.2.3節(jié)中,我們討論了數(shù)據(jù)庫(kù)連接的可移植性問(wèn)題,如果使用本文介紹的方法,則在生成可執(zhí)行文件的過(guò)程中不用關(guān)心UDL文件等問(wèn)題。在生成可執(zhí)行文件的過(guò)程中*需要注意的是把所用到的數(shù)據(jù)庫(kù)文件添到到可執(zhí)行文件的支持文件(Support files)中去。
      步驟一:把數(shù)據(jù)庫(kù)文件添加到工程中去,如圖3.3所示。
      步驟二:在Build specification的Source file選項(xiàng)中,把數(shù)據(jù)庫(kù)文件iPhoneData.mdb添加到Support file中,這樣iPhoneData.mdb會(huì)被加入Support Directory。如圖3.4所示。
      其它設(shè)置與通常生成可執(zhí)行文件的基本步驟一樣,點(diǎn)擊”Build”按鈕即可生成可執(zhí)行文件。
      18
      圖3.3 把數(shù)據(jù)庫(kù)文件添加到工程
      圖3.4 把數(shù)據(jù)庫(kù)文件添加到Support files中
      如果出現(xiàn)生成的可執(zhí)行文件無(wú)法執(zhí)行數(shù)據(jù)保存和檢索的操作,請(qǐng)檢查執(zhí)行文件和數(shù)據(jù)庫(kù)文件的相對(duì)路徑是否正確。
      3.3 生成安裝文件(Installer)
      生成安裝文件,我們所要考慮的問(wèn)題是,目標(biāo)機(jī)上是否有對(duì)LabVIEW數(shù)據(jù)庫(kù)工具包的支持——MDAC2.5。
      LabVIEW數(shù)據(jù)庫(kù)工具包已經(jīng)自帶了MDAC2.5的安裝文件——mdac_typ.exe,所以,我們需要把mdac_typ.exe添加到安裝文件中去。讓安裝文件在安裝過(guò)程中把MDAC2.5替我們裝到目標(biāo)機(jī)上。
      步驟一:把mdac_typ.exe添加到工程中,如圖3.5所示。mdac_typ.exe在LabVIEW安裝路徑
      19
      \National Instruments\LabVIEW 8.2\Database\MDAC中。
      圖3.5把mdac_typ.exe添加到工程中
      步驟二:在Source File里面先把已編譯好的可執(zhí)行文件添加到ProgramfileFolder中去,然后把mdac_typ.exe添加到data文件夾中去,如圖3.6所示。
      圖3.6 把mdac_typ.exe添加到data文件夾中
      步驟三:在Advanced設(shè)置窗口中,把mdac_typ.exe添加到Run Executable after installation中,如圖3.7所示。
      20
      圖3.7 添加mdac_typ.exe到Run Executable after installation
      其余步驟與通常制作安裝文件的步驟一致,zui后點(diǎn)擊Build即可生成安裝文件了。
      到此,大功終于告成了,還等什么,趕快親手去試試?。
      21
      第4章 后記
      “I hear and I forget;
      I see and I remember;
      I do and I understand.”
      眼見(jiàn)為實(shí),耳聽(tīng)為虛,任何事都要親自付以行動(dòng)才能真真正正的理解。在LabVIEW這樣一個(gè)非常適合工程師和科學(xué)家的平臺(tái)上,多嘗試,多實(shí)踐是工程能力增長(zhǎng)的不二法門(mén)。
      拙作肯定存在不少問(wèn)題,有任何問(wèn)題,可以給我: jing.zhang.zju,真心希望能與大家一起分享一起討論。
      22


      旗下子站

      工控網(wǎng)機(jī)器人3D打印物聯(lián)網(wǎng)儀器儀表工業(yè)軟件


      關(guān)于我們|本站服務(wù)|會(huì)員服務(wù)|企業(yè)建站|旗下網(wǎng)站|友情鏈接| 興旺通| 產(chǎn)品分類(lèi)瀏覽|產(chǎn)品sitemap

      智能制造網(wǎng) - 工業(yè)4.0時(shí)代智能制造領(lǐng)域“互聯(lián)網(wǎng)+”服務(wù)平臺(tái)

      Copyright gkzhan.comAll Rights Reserved法律顧問(wèn):浙江天冊(cè)律師事務(wù)所 賈熙明律師

      客服熱線(xiàn):0571-87756395加盟熱線(xiàn):0571-87759904媒體合作:0571-89719789

      客服部:編輯部:展會(huì)合作:市場(chǎng)部:

      返回首頁(yè)