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