![深入淺出LabVIEW數(shù)據(jù)庫應(yīng)用_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b1.gif)
![深入淺出LabVIEW數(shù)據(jù)庫應(yīng)用_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b2.gif)
![深入淺出LabVIEW數(shù)據(jù)庫應(yīng)用_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b3.gif)
![深入淺出LabVIEW數(shù)據(jù)庫應(yīng)用_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b4.gif)
![深入淺出LabVIEW數(shù)據(jù)庫應(yīng)用_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-2/10/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b/ffb53ea0-8ea7-4c25-a7d7-a9bdd3532e4b5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、W7 NATIONAL目錄第i章 引言一獻給想用數(shù)據(jù)庫而不懂?dāng)?shù)據(jù)庫的工程師 i第2章邊干邊學(xué)數(shù)據(jù)庫基礎(chǔ)22.1 數(shù)據(jù)庫簡史22.2 建立數(shù)據(jù)源22.2.1 在Access中建立一個數(shù)據(jù)庫 22.2.2 建立與數(shù)據(jù)庫的連接 32.2.3 數(shù)據(jù)庫連接的可移植性問題(高級話題) 72.3 數(shù)據(jù)庫基本操作 82.3.1 創(chuàng)建一個表格82.3.2 刪除一個表格102.3.3 添加一條記錄102.3.4 查詢一條記錄112.4 數(shù)據(jù)庫高級操作122.4.1 在LabVIEW中執(zhí)行SQL語言案例研究 122.4.2 用SQL實現(xiàn)數(shù)據(jù)查詢操作 132.4.3 用SQL實現(xiàn)刪除一條記錄 132.4.4 壓縮數(shù)據(jù)
2、庫,釋放多余空間 142.4.5 用SQL實現(xiàn)修改數(shù)據(jù)操作 152.5 本章總結(jié)16第3章一個完整的數(shù)據(jù)庫工程范例 173.1 工程項目要求173.2 生成可執(zhí)行文件(*.exe)183.3 生成安裝文件(Installer)19第4章后記22iW7 NATIONAL尸 INSTRUMENTS第i章引言一獻給想用數(shù)據(jù)庫而不懂?dāng)?shù)據(jù)庫的工程師曾經(jīng)在一個產(chǎn)品檢測項目中,客戶要求:當(dāng)產(chǎn)品檢測不合格時,記下該產(chǎn)品 對應(yīng)的序列號,測試時間和各項測試指標,并能對這些數(shù)據(jù)進行管理和查詢。由 于自己沒有系統(tǒng)的學(xué)習(xí)過數(shù)據(jù)庫,所以第一時間想到的解決方案是用文件的方式 (也只能把數(shù)據(jù)存成文件了)。在使用文件進行數(shù)據(jù)儲
3、存與管理時,遇到了一個巨 大的問題:如何查詢數(shù)據(jù)?基本的文件io函數(shù)中,并沒有提供現(xiàn)成的查詢函數(shù), 所以必須自己編程實現(xiàn)。實現(xiàn)的過程是先將數(shù)據(jù)讀入內(nèi)存,然后再根據(jù)關(guān)鍵字進 行線性查找,線性查找的時間復(fù)雜度為O(N),所以當(dāng)數(shù)據(jù)量逐漸增大時,這將是一個非??膳碌倪^程。這個不可逾越的障礙迫使我不得不再次考慮使用數(shù)據(jù) 庫。想到這兒,我立即到天河書城買了兩本網(wǎng)上評價為數(shù)據(jù)庫經(jīng)典的書數(shù)據(jù)庫 系統(tǒng)概念和輕松掌握SQL,回到辦公室后立即開始學(xué)習(xí)起來。 陌生的術(shù)語, 難懂的理論;看了后一章便忘了前一章一一非常痛苦但還是硬著頭皮堅持到了下 班。這種痛苦再加上越來越近的項目交付日期,使我非常焦躁,心里終于有個聲
4、音爆發(fā)了出來“我不就是想要實現(xiàn)數(shù)據(jù)的保存, 修改,刪除和查詢嗎?我需要把 那眾多的數(shù)據(jù)庫類型、復(fù)雜的關(guān)系模型、抽象的關(guān)系代數(shù)都搞懂嗎? ? ”實 踐后的答案是,不需要,一點都不需要。我放棄了剛買的新書,打開了 LabVIEW數(shù)據(jù)庫工具包的用戶手冊和范例程 序,尋找著我期望的數(shù)據(jù)保存,修改,刪除和查詢功能。到下班的時候,Everything goes well,基本掌握了用LabVIEW數(shù)據(jù)庫工具包進行數(shù)據(jù)保存,修改,刪除和 查詢的方法。回想起這段歷程,突然有種想與大家一起分享的沖動一一不懂?dāng)?shù)據(jù)庫的工程 師也可以玩轉(zhuǎn)數(shù)據(jù)庫,因為從應(yīng)用的角度來看,我們的實際需求僅僅是數(shù)據(jù)的保 存、修改、刪除和查詢
5、,根本不需要去研究復(fù)雜的關(guān)系模型、抽象的關(guān)系代數(shù)、 艱深的數(shù)據(jù)庫設(shè)計 那基本與我們的初始目標南轅北轍。借助 LabVIEW數(shù)據(jù)庫 鏈接工具包(Database Connectivity toolkit)可以站在應(yīng)用的層次,很方便的操作數(shù) 據(jù)庫,實現(xiàn)數(shù)據(jù)的保存、修改、刪除和查詢等功能。“學(xué)以致用,邊學(xué)邊用,急用先學(xué),立竿見影”,在后續(xù)的章節(jié)中,我們先 概覽一下必需的與數(shù)據(jù)庫相關(guān)的基本概念,然后在 LabVIEW平臺上一邊學(xué)習(xí), 一邊實踐如何儲存、管理和查詢數(shù)據(jù)。1本頁已使用福昕閱讀器進行編輯。福昕軟件(C) 2005-20(D僅供試用CT NATIONALINSTRUMENTS第2章邊干邊學(xué)數(shù)據(jù)
6、庫基礎(chǔ)2.1數(shù)據(jù)庫簡史在20世紀60年代,第一個數(shù)據(jù)庫管理系統(tǒng)(DBMS)發(fā)明以前,數(shù)據(jù)記錄主要是通過磁盤或穿孔卡片,那時候,無論是數(shù)據(jù)的管理、查詢或是存儲都是一件非常痛苦的事情。隨著 計算機開始廣泛地應(yīng)用于數(shù)據(jù)管理,數(shù)據(jù)共享要求也越來越高,傳統(tǒng)的文件系統(tǒng)已經(jīng)不能滿足人們的需要,能夠統(tǒng)一管理和共享數(shù)據(jù)的數(shù)據(jù)庫管理系統(tǒng)應(yīng)運而生。第一個數(shù)據(jù)庫是美國通用電氣公司 Bachman等人在1961年開發(fā)成功的IDS(Integrated DataStore),它奠定了數(shù)據(jù) 庫的基礎(chǔ),并在當(dāng)時得到了廣泛的發(fā)行和應(yīng)用。隨后,在1970年,IBM 的研究員 E.F.Codd博士在刊物Communication
7、of the ACM 上發(fā)表了一篇名為“A Relational Model of Data for Large Shared Data Banks 的論文,提出了關(guān)系模型的概念,奠定了關(guān)系模型的理論基礎(chǔ)。這篇論文被普遍認為是數(shù)據(jù)庫系統(tǒng)歷史上具有 劃時代意義的里程碑。Codd的心愿是為數(shù)據(jù)庫建立一個優(yōu)美的數(shù)據(jù)模型,后來Codd又陸續(xù)發(fā)表多篇文章,論述了范式理論和衡量關(guān)系系統(tǒng)的12條標準,用數(shù)學(xué)理論奠定了關(guān)系數(shù)據(jù)庫的基礎(chǔ)。1974年,IBM 的Ray Boyce和Don Chamberlin將Codd關(guān)系數(shù)據(jù)庫的12條準則的數(shù)學(xué) 定義以簡單的關(guān)鍵字語法表現(xiàn)出來,提出了具有里程碑意義的SQL(St
8、ructured QueryLanguage)語言。SQL語言的功能包括查詢、操縱、定義和控制,是一個綜合的、通用的關(guān) 系數(shù)據(jù)庫語言,同時又是一種高度非過程化的語言,只要求用戶指出做什么而不需要指出怎么做。SQL語言的這個特點使之成為了一種真正的跨平臺和跨產(chǎn)品的語言?,F(xiàn)今,數(shù)據(jù)庫技術(shù)已經(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組件之
9、一,安裝和使用都非常方便,并且支持 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所示。,版權(quán)所有a 4!'! !!出丿:丈件® 彌© tfiEltW ffiAd)工且宙口 d)幫曲®圖2.1創(chuàng)建A
10、ccess數(shù)據(jù)庫:暮建立件就事空數(shù)據(jù)訪閆) U碇用溟育數(shù)i 旦j校用紙液據(jù)£ jiJ眼據(jù)現(xiàn)有更*到岡上W OfhcE Orlt 旦J本機上的模*2.2.2 建立與數(shù)據(jù)庫的連接在利用LabVIEW 數(shù)據(jù)庫工具包操作數(shù)據(jù)庫之前,需要先連接數(shù)據(jù)庫,這就像操作文件之前,先要打開文件一樣。連接數(shù)據(jù)庫有兩種方法:利用DSN連接數(shù)據(jù)庫3本頁已使用福昕閱讀器進行編輯。福昕軟件(C) 2005-20(D僅供試用CT NATIONALINSTRUMENTSDSN 。LabVIEW 數(shù)據(jù)庫工具包基于 ODBC(Open Database Connectivity) 技術(shù),如圖2.2所示, 在使用ODBC
11、API函數(shù)時,需要提供數(shù)據(jù)源名 DSN(Data Source Names)才能連接到實際數(shù)據(jù) 庫,所以我們需要首先創(chuàng)建Lab VIEW ApplicationSOL Toolkit VisODBC APIODBC DriverODBC Driver圖2.2 LabVIEW 數(shù)據(jù)庫工具包基于 ODBC技術(shù)【背景知識】ODBC(Open Database Connectivity ,開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu) (WOSA,Windows Open Services Architecture)中有關(guān)數(shù)據(jù)庫的一個組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標準 API (應(yīng)用程
12、序編程接口)。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。#本頁已使用福昕閱讀器進行編輯。福昕軟件(0 2 0 0 5 - 2 0(00,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS.在"Win dows控制面板”中雙擊"管理工具ODBC數(shù)據(jù)源管理器,如圖 2.3所示。,然后雙擊“數(shù)據(jù)源”詛進入11 ODBC Data Source AdministratorUser DSN | SjKstefin DSN File DSN Drivers Tracing | Corriecton
13、Poofrig AboutUser Data Sources:NamedBASE FilesExcel FtesPhoneDataMS Access DalabaseVisio Database Sampler Visual FoxPig DatabaseDriveiTMicrosofi: dBase Doivef (x.dbf) Microsoft Excel Dover T.jis)MicrDsofl: Access Driver (M.mdb) Microsoh Access Driver (F.fndb Microsoft Access Driver r.MDB MicrOscift
14、VisLial FPro DniverH etnoreConfigure.Visual FckPiq TablesMicrosofl; Visual FoxPro DriverAn ODBC User data ®urce stores infonnafion about how to connect to the indicaied data prcwidei. A User dta source is onlp viable lo you, and can only be ussdl on ihs curreril: ririaclwie.#本頁已使用福昕閱讀器進行編輯。福昕軟件
15、(0 2 0 0 5 - 2 0(00,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS.#本頁已使用福昕閱讀器進行編輯。福昕軟件(0 2 0 0 5 - 2 0(00,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS.圖2.3 ODBC數(shù)據(jù)源管理器User DSN(用戶數(shù)據(jù)源名)選項卡下建立的數(shù)據(jù)源名只有本用戶才能訪問,SystemDSN(系統(tǒng)數(shù)據(jù)源名)選項卡下建立的數(shù)據(jù)源名在該系統(tǒng)下的所有用戶都可以訪問。User DSN選項卡下點擊 士二按鈕,會彈出數(shù)據(jù)源驅(qū)動選擇對話框,然后選擇Microsoft AccessDriver(*.mdb),如圖 2.4所示。圖2.
16、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所示。圖 2.5 ODBC Microsoft Access Setup 窗口完成上述設(shè)置后,就可以在User DSN選項卡下看到新建的 DSN 了。單擊OK按鈕完成DNS的建立。打開隨本文的程序:ConnectionExample.vi,在DS
17、N Name中填入剛建好的 DSN名并運行,如圖2.6所示。圖2.6利用DSN連接數(shù)據(jù)庫Microsoft設(shè)計的ODBC標準只能訪問關(guān)系型數(shù)據(jù)庫,對非關(guān)系型數(shù)據(jù)庫則無能為力。為 解決這個問題,Microsoft還提供了另一種技術(shù):Active數(shù)據(jù)對象ADO (ActiveX Data Objects )技術(shù)。ADO是Microsoft提出的應(yīng)用程序接口( API )用以實現(xiàn)訪問關(guān)系或非關(guān)系數(shù)據(jù)庫中的 數(shù)據(jù)。ADO使用通用數(shù)據(jù)連接UDL(U ni versal Data Lin k)來獲得數(shù)據(jù)庫信息以實現(xiàn)數(shù)據(jù)庫連接。在iPhoneData.mdb所在的文件夾下點擊 鼠標右鍵-新建-'Mi
18、crosoft Data Link ,如圖2.7 所示,并把文件命名為"iPho neData.udl”。#W7 NATIONAL尸 INSTRUMENTS7W7 NATIONAL尸 INSTRUMENTSiPhcmeData.mdbMicrosoft Office Access Sffl. 玄 HO KBm ATI CATALYST(R) Control CenterVfcwArrange Icons ByRefreshCustomize Tfe Folder.PasteP«(e Shortcut#W7 NATIONAL尸 INSTRUMENTSNewProperties
19、Folderd ShortcutBriefcase旦t Woi*d D'ocument 也 Microwft OFFlce Access 應(yīng)用程序MicrosoFt PowerPoint Presentation昌 Text DocumentMicrosoft Data Lnk三 阿crosoft Visio Drawing 口Wave Sound 窮 MicrosoFt Excel Worksheet圖2.7新建UDL文件雙擊"iPhoneData.udl ”,打開 Data Link Properties 對話框,在 Provider 選項卡中選擇 Microsoft J
20、et 4.0 OLE DB Provider,如圖 2.8所示,并點擊 Next>> 按鈕。昭 Data Link PropertiesXProvider Connection Advanced AlSelect Iht data you want to ccnnsct taOLE DB ProYideisrMedMCMBlotf)B OLE OB RovdorMediaCatalogMergedDB OLE DB Provider MediaCatalogWebDB OLE DB Provider MicranftJet 351 OLE DB ProvideMicrtKcfUet
21、 4.0 OLE DB ProviderMicrosoft OLE DB Provider For Data Mining ServicesMicrosoft OLE DE Froviifei for DTS Package?Microsoft OLE DB Provitfei for Indewng ServiceMicrosoft OLE DB Providei for Internet PublishingMicrosoft OLE DB Proyidei for ODBC DriversMicrosoft OLE DB Prcvidei for DLAPSsrvioes 0.0Micr
22、asolt OLE DB Provider for OracleMicrosoft OLE DB ProYider for Ouriook SearchMicrosoft OLE DB Providsr for SQL SemrMicrosoft OLE DB Simple ProviderMSOafaShape口LE DB Frovidei for Microsoft Direclory ServicesvNewt >>OKUmncel | Halp圖 2.8 選擇 Provider在Conn ection選項卡中,選擇已建立好的數(shù)據(jù)庫文件,然后點擊Test Co nn ecti
23、on按鈕,#W7 NATIONAL尸 INSTRUMENTS如果沒有什么問題的話,會彈出 Test Co nn ection succeeded的對話框,如圖 2.9所示。圖2.9選擇數(shù)據(jù)庫源9W7 NATIONAL尸 INSTRUMENTS#W7 NATIONAL尸 INSTRUMENTS創(chuàng)建好UDL后,打開隨本文的程序:ConnectionExample.vi在DSN Name中填入剛建好的 DSN 名并運行,如果成功的話,會如圖2.10所示。J Da ta Has eAp0sk t e s'l.ds 繃 Ph neCp t 日.LELCon region Me 曲 oduDtFi
24、eCNameFie g 卿網(wǎng) Erolect Operate lads yiraaw tJeipl'3pt Applied:km FaitHurJ5ew Pro)Mt Operate rods H£ndw Help- X A血訥 F帕巾I P占恥|創(chuàng)畫 Zl I剣愛I I3gj亠1沏訶細FXilg'UX Fk”IJX Fie口 口 口 n n 口0Th 呂 W slxwts three dfFerert methodE aval able to connect to * 曲曲譽e : dri <t®C dMm s&jce raw (DSN)(
25、unbm田I ddtdi hnk (UDL) fie-, or u«ngi a dideg 口rnnipLring a 口iath to ba the cannedian nFefmKin input 噸經(jīng)$ tNrt ¥CU areushflaFjIeDSMODK Lonnect cn or a correcHon that s pedfn&d ifi -a i_nvi&r£dl d(s£a Irk iXL'l Fis as is the case-here.4tomeetkin Method!#W7 NATIONAL尸 INS
26、TRUMENTS#W7 NATIONAL尸 INSTRUMENTS圖2.10利用UDL連接數(shù)據(jù)庫2.2.3 數(shù)據(jù)庫連接的可移植性問題(高級話題)用文本編輯器打開剛新建的"iPhoneData.udl”文件,其內(nèi)容如下所示:oledb;Everything after this line is an OLE DB initstringProvider=Microsoft .J et.OLEDB.4.0;DataSource=D:DocApplicationNotesDatabaseAppNotesdataiPhoneData.mdb;Persist Security lnfo=Fals
27、e 分號(;)后面的內(nèi)容是注釋可以不用搭理。Data Source后面是數(shù)據(jù)庫的絕對路徑,所以,當(dāng)數(shù)據(jù)庫文件位置變化后,程序就會出錯。我們可以直接把"iPhoneData.udl”文件中的信息重新生成,然后傳給DB Tools Open#本頁已使用福昕閱讀器進行編輯。福昕軟件(0 2 0 0 5 - 2 0(00,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS.GetDBPath.vi#本頁已使用福昕閱讀器進行編輯。福昕軟件(0 2 0 0 5 - 2 0(00,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS.OConn ection .vi,如圖2.
28、11所示。具體的實現(xiàn)可以參看本文附帶的范例Filename1nR.un Time Sysh TIConnection重構(gòu)數(shù)據(jù)庫路徑圖 2.11 GetDBPath.vi| ? This ApDkatian 卜App.lChd -This AppkMion#本頁已使用福昕閱讀器進行編輯。福昕軟件(0 2 0 0 5 - 2 0(00,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS.#本頁已使用福昕閱讀器進行編輯。福昕軟件(0 2 0 0 5 - 2 0(00,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS.在后面的程序中,本文都將使用GetDBPath.vi來獲得
29、數(shù)據(jù)庫的位置信息,然后傳給 DB Tools Open Connection .vi。2.3數(shù)據(jù)庫基本操作連接上數(shù)據(jù)庫之后,就可以對數(shù)據(jù)庫進行操作了。本節(jié)主要介紹數(shù)據(jù)庫最常用的幾種基本操作,包括創(chuàng)建表格、刪除表格、添加記錄、查詢記錄。2.3.1 創(chuàng)建一個表格數(shù)據(jù)庫是以表的形式來記錄數(shù)據(jù)的,如圖2.12所示,大家可以用Access打開一個數(shù)據(jù)庫文件來體驗一下。 TeMRult :表TestTime|OperatorUUTSeridNumFowerFassEsrphoneTJiDTouchP anelFss sMicphoneFass12007-9-115:17: TesterOPV-24736I
30、-33true低二逬利數(shù)據(jù)truetrue2007-9-115;IT: TesterJW-4024B1F63true栓二進制墩據(jù)falsefal/se21D0Y-9-115:17: TesterCZ0-521B7f-77false長二進制數(shù)據(jù)true-trueEOQT-0-116:27: TesterJU.-244W-62true底二進制數(shù)據(jù)truefalse2007-9-116:27: TesterEIT-385S5G-56true長二進制數(shù)據(jù)false圖2.12數(shù)據(jù)庫里的表格數(shù)據(jù)表的每一行,表示一條記錄(Record);每一列,表示記錄中的字段(Field),說的通俗點就是記錄中的一項內(nèi)容
31、,比如測試時間。能夠唯一標識表中某一行的屬性或?qū)傩越M,叫主鍵(Primary Key),個表只能有一個主鍵,但可以有多個候選索引。因為主鍵可以唯一標 識某一行記錄,所以可以確保執(zhí)行數(shù)據(jù)更新、刪除的時候不會出現(xiàn)張冠李戴的錯誤。DB Tools Create Table, vi創(chuàng)建數(shù)據(jù)表由LabVIEW 數(shù)據(jù)庫工具包中的實現(xiàn)。參數(shù)中的Table,為被創(chuàng)建的數(shù)據(jù)表表名,Colu mn In formation指定表格每一列的屬性,如圖2.13所示。colijnn informaftioncolumn nameOperator data type:StringsizeT. 50那0sizellow n
32、ull?column namecolumri namecoluim namecolumn nameIJUTSeridlNunftPowerPassEarptioneTHDTouchPanelPassdata typedata typedata typedata type寸 Stringr-String-)|Binaryfaringsizesizesizeseejf 50allow nJ?alow ndl?allow null?宙1allm nul?E|EIE|圖 2.13 column information需要注意的是column information中的Data type設(shè)置部分,Lab
33、VIEW的數(shù)據(jù)類型有許多 種,而這里的Data type選項只有幾種,所以必須清楚LabVIEW數(shù)據(jù)類型和Colu mn in formation 中的Data type的對應(yīng)關(guān)系,如表 2.1所示。表2.1對應(yīng)關(guān)系LabVIEW數(shù)據(jù)類型數(shù)據(jù)庫數(shù)據(jù)類型Number NumberString/Path StringArray BinaryCluster BinaryBooleanString or NumberEnum NumberVariant BinaryPicture controlBinaryWDT BinaryRefnum NotsupportedI/O ChannelStringCo
34、mplex NumbersBinary知道了這個對應(yīng)關(guān)系后,創(chuàng)建數(shù)據(jù)庫表格便是一件很容易的事情,范例程序如圖2.14所示,具體代碼請參考 CreateTable.vi。圖2.14創(chuàng)建數(shù)據(jù)庫表格代碼11本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,如果數(shù)據(jù)庫表格創(chuàng)建成功,大家可以用Access打開數(shù)據(jù)庫,看到自己創(chuàng)建的表格。232刪除一個表格DB Tools Drop Table.vi與數(shù)據(jù)庫表格創(chuàng)建相對應(yīng)的是數(shù)據(jù)庫表格刪除,實現(xiàn)。將需要刪除13本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版
35、權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,的數(shù)據(jù)庫的名字告訴 DB Tools Drop Table.vi即可完成數(shù)據(jù)庫表格的刪除操作。具體實現(xiàn)如圖2.15所示。etror in (no error)error打該圖2.15刪除數(shù)據(jù)表格#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供
36、試用。W7 NATIONALINSTRUMENTS,【分享】表格創(chuàng)建和刪除的參數(shù)非常相似,可以很方便的在一個VI里面同時實現(xiàn)表格的創(chuàng)建和刪除操作。2.3.3 添加一條記錄DB Tools In$ert Data.vi添加一條記錄由來實現(xiàn),DB Tools In sert Data.vi需要三個主要的參#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,數(shù):table (數(shù)據(jù)表名)告訴DB Tools Insert Data.vi往數(shù)據(jù)庫里的哪個表格插入數(shù)據(jù);data,告訴DB Tools Insert Data.v
37、i插入什么數(shù)據(jù);columns對應(yīng)插入的列的名字,其數(shù)據(jù)類型是一個字符串?dāng)?shù)組。添加記錄的范例程序如圖2.16所示。圖2.16添加一條記錄LabVIEW數(shù)據(jù)庫工具包提供了一個工具DB Tools List Cdumns.viVI,可以把指定數(shù)據(jù)表的#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,column名字讀出來傳給 DB Tools Insert Data.vi ,這樣可以省去
38、手動輸入column名字的工作。#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,234查詢一條記錄數(shù)據(jù)能存儲到數(shù)據(jù)庫之后, 下一個要考慮的操作即是如何把數(shù)據(jù)讀出。把數(shù)據(jù)從數(shù)據(jù)庫DB Tools Select Data.vi中讀出的VI是我們只需要告訴 DB Tools Select Data.vi讀取哪個數(shù)據(jù)表#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)
39、所有僅供試用。W7 NATIONALINSTRUMENTS,格,DB Tools Select Data.vi就會把該表格中的所有數(shù)據(jù)讀出來,如圖2.17所示。lestR爲 u 日phcineCiatandlj 卜-1-JI日 THDr|Fn|從魏據(jù)庫中 讀出數(shù)據(jù):把數(shù)搖庫中讀岀陶廉始數(shù)據(jù)(Raw Data)轉(zhuǎn)換成正確 的數(shù)據(jù)類型1???« .3RecordsItEmWarriEsDB Tools Select Data.vi圖2.17從數(shù)據(jù)庫中讀出數(shù)據(jù)讀出的數(shù)據(jù)是動態(tài)數(shù)據(jù)類型,Database Variant To Data函數(shù)#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5
40、 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,把動態(tài)數(shù)據(jù)類型轉(zhuǎn)換成正確的數(shù)據(jù)類型。大多數(shù)情況下,我們并不需要把數(shù)據(jù)庫中的數(shù)據(jù)全部讀出來。比如,數(shù)據(jù)庫中已經(jīng)有1000條記錄了,每次都要把 1000條記錄讀出來,費時費力。LabVIEW數(shù)據(jù)庫工具包完全支持DB Tools Select Data.vi在二的 optional clause 輸入端按照SQL語法輸入條件語句,即可讀出感興趣的數(shù)據(jù)。SQL語言非常簡單,如果從來沒有接觸過SQ
41、L語言,可以花一點時間學(xué)習(xí)一下。LabVIEW 數(shù)據(jù)庫工具包的用戶手冊附錄 A上有SQL的快速參考手冊。SQL的條件查詢語法格式如圖 2.18所示。SElLETTSELECT iDlSTritl * | col expt j.U口 I expir, . . _ jFRMl frori_clAlii nriKUUP SI(git'Qup eldUiiej .1HAVINGhaving_c Laa se.)1QRQER B¥TOR UTOATE OPSELECT ii uwf J Eoqtieiy.fieJ uIuujimI4U JM<huhi« 佃hSL A W
42、ill WL <lanw 唇 mod io rcirid ItoidMiM: Md-ORDR BY 亦U GROUP BY cLs 缺 u J h orfunize the rzlii 噸血他SELECT ccl丄p cola FkCH t it-丄c口 11 吐cd13 - 0012 XD理BYftSC圖2.18 SQL的條件查詢語法格式DB Tools Select Data.viRS已經(jīng)把SELECT語句預(yù)先集成好了,我們只需要在optional clause輸入端加入 WHERE語句部分即可,如圖2.19所示。范例程序從 TestResult這張表里把字段TestTime等于字符
43、串“ 2008-8-27 16:24:34 ”的記錄讀出來。vhere TestTime '2007-8-27 16;Z4;34'jEarphone THDG秋IliPhoneData.mdb DB3二:口=Qi|> error outJ2.19讀岀感興趣的數(shù)據(jù)15本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,【參考知識】 WHERE語句可包括各種條件運算符:
44、比較運算符(大小比較):、=、=、=、!、!范圍運算符(表達式值是否在指定的范圍 ):BETWEENAND- NOT BETWEENAND-列表運算符(判斷表達式是否為列表中的指定項 ):IN (項1,項2)NOT IN (項1,項2)模式匹配符(判斷值是否與指定的字符通配格式相符):LIKE、NOT LIKE空值判斷符(判斷表達式是否為空):IS NULL、NOT IS NULL邏輯運算符(用于多條件的邏輯連接):NOT、AND、OR2.4數(shù)據(jù)庫高級操作數(shù)據(jù)庫操作除了創(chuàng)建表格、刪除表格、添加記錄、查詢記錄外,常用的還有刪除記錄、 更新現(xiàn)有數(shù)據(jù)等操作。由于這些操作并沒有現(xiàn)成的VI,所以需要借助
45、SQL語言來實現(xiàn)。2.4.1 在LabVIEW 中執(zhí)行SQL語言案例研究如前所述,絕大部分DBMS都支持SQL語言,LabVIEW數(shù)據(jù)庫工具包實現(xiàn)的實質(zhì)也是基于SQL語言,它為不熟悉SQL語言的用戶把SQL語言封裝了起來,以方便他們使用。2.3節(jié)的操作都是基于已封裝好的VI。 號DB Tools Select Data.vi雙擊,打開它的程序框圖,如圖2.20所示,讓我們一起來研究一下它的實現(xiàn)過程。jonnection referenceDGlerror in (robptionBl tlauwg口*E3 + 2EEEZ14alumrisNo ErrorEM呼創(chuàng)建別L語句執(zhí)行訊語_ISChFR
46、uHE飛ALLdata#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,圖 2.20 DB Tools Select Data的代碼實現(xiàn)#NATIONAL* INSTRUMENTSDB Tools Execute Qjery.vi如圖 2.20所示,DB Tools Select Data.vi先創(chuàng)建了 SQL語句,然后用SQL來實現(xiàn)LabVIEW數(shù)據(jù)庫工具包中沒有來執(zhí)行SQL語句,
47、以此實現(xiàn)對數(shù)據(jù)庫的操作。 在本節(jié)中,我們也沿用這種模式,直接用 提供的功能。2.4.2 用SQL實現(xiàn)數(shù)據(jù)查詢操作了解了 LabVIEW如何執(zhí)行SQL語言后,我們可以重新實現(xiàn)2.3.4查詢一條記錄的功能,范例程序如圖2.21所示。llPhoneData.mdb田=00error inselect * from TestReult where Time ='2007-9-1 16:27:error out圖2.21用SQL查詢記錄recordset data#NATIONAL* INSTRUMENTS#NATIONAL* INSTRUMENTS2.4.3 用SQL實現(xiàn)刪除一條記錄通過查閱S
48、QL參考手冊,我們知道刪除一條記錄的語句是“detele”,其語法為:DELETE FROM table_nameWHERE column_name = some_value參考圖2.21,我們很容易實現(xiàn)刪除一條記錄的操作,如圖2.22所示。圖2.22刪除一條記錄在使用“ detele ”語句時,需要注意:1. “detele”語句不能刪除單個字段的值,只能刪除一行、多行、所有行或一行也不刪除;2. “detele”語句僅能刪除記錄,不能刪除表本身;刪除表要用“drop ”語句,這也是為什么LabVIEW 數(shù)據(jù)庫工具包中刪除表的VI叫Drop Table。244 壓縮數(shù)據(jù)庫,釋放多余空間刪除了
49、記錄后,你會驚奇的發(fā)現(xiàn)數(shù)據(jù)庫文件并沒有減小,就算把所有的數(shù)據(jù)全部都刪除掉,結(jié)果也一樣。這是因為數(shù)據(jù)庫在使用一段時間后,時常會出現(xiàn)因數(shù)據(jù)刪除而造成數(shù)據(jù)庫中空閑空間太多的情況,這時就需要減少分配給數(shù)據(jù)庫文件和事務(wù)日志文件的磁盤空間, 免浪費磁盤空間。Microsoft提供了一個壓縮數(shù)據(jù)庫的方法,請參考 How To Compact Microsoft Access Database Through ADO。其基本思想是,使用 ADO 的擴展:Microsoft Jet OLE DB Provider and Replication Objects (JRO)中的方法:CompactDatabase
50、。Je對象在文件 Msjro.dll 里面,如圖 2.23 所示。©BackTz : SearchFolders| -dnrF -5 J Search ResultsMarne1§ms jro.dllnrher PlacesIn Fnlder ,_FilesKofmmon Files5ystamad&:圄 Oeskfcop圖 2.23 Msjro.dll 文件F面將簡單介紹一下在 LabVIEW 中訪問Jet對象的方法:在前面板上放,在右鍵菜單中選擇"Select ActiveAutomation ReFnumClass” ->Browe”,如圖 2
51、.24所示。Automation Ref numVisible ItemsFind Terminal1Change to IndicatorDescripthn and Tip.Ckeate卜Repla匚亡Data Operations卜AdvancedSelect ActiveX Class 卜 |JRO,IJetEngineProperties圖 2.24 選擇 Jet Engine在彈出的Select Object From Type Library 窗口中點擊Browse按鈕,按照圖 2.24所示的 路徑選擇 Msjro.dll。然后在 Objects選擇框中選擇JetEngine(J
52、RO.JetEngine.2.6),點擊OK按 鈕,如圖2.25所示。17本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,圖2.25選擇Jet對象在程序框圖中放置一個方法節(jié)點,并選擇方法CompressDatabase,如圖2.26所示。到此為止,就實現(xiàn)了在 LabVIEW 中調(diào)用Jet對象的CompressDatabase方法。JROJJetEngirieS "+ IJetEngine SCompc ctD 目c 0*5ojrceConnBctianSounceConnection* Deetcome
53、ctionbestcon 訂e匚 tion#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,#本頁已使用福昕閱讀器進行編輯。福昕軟件(C)2OO5 2O(D0,版權(quán)所有僅供試用。W7 NATIONALINSTRUMENTS,這個備份來替代原數(shù)據(jù)庫文件。詳細實現(xiàn)請參考SQL中,修改一條記錄的語句是“ update ”,其語法為:UPDATE table_nameSET column_name = new_valueWHERE column_name = some_value修改一條記錄的范例程序,如圖2.27所示:圖 2.26 調(diào)用 CompressDatabase 方法由于這個方法僅僅對原數(shù)據(jù)庫做了一個壓縮后的備份,所以,還需要把原文件移除,Access F
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年項目策劃協(xié)作框架協(xié)議模板
- 2025年企業(yè)供應(yīng)商合同處理實務(wù)
- 2025年度保密協(xié)議策劃與審核標準
- 2025年度共同證券投資策劃協(xié)議書范本
- 2025年二手車交易平臺中介合同范本
- 2025年個人勞務(wù)承包合同標準化
- 2025年分期付款購買合同范文
- 2025官方版離婚贍養(yǎng)協(xié)議書范本
- 2025年實驗設(shè)備策劃轉(zhuǎn)讓與應(yīng)用協(xié)議書范文
- 2025年倉儲公司臨時工工作合同
- (閩教版)六年級下英語教學(xué)計劃
- 氧化還原反應(yīng)配平專項訓(xùn)練
- 人教版英語高考試卷與參考答案(2024年)
- 河砂、碎石生產(chǎn)質(zhì)量保證措施方案
- 全國教育科學(xué)規(guī)劃課題申報書:02.《鑄牢中華民族共同體意識的學(xué)校教育研究》
- 三位數(shù)除以兩位數(shù)過關(guān)練習(xí)口算題大全附答案
- 什么叫績效考勤管理制度
- 紅樓夢服飾文化
- 外墻噴漆施工合同協(xié)議書
- 軟件系統(tǒng)平臺項目實施方案
- 陜西延長石油集團礦業(yè)公司招聘筆試題庫2024
評論
0/150
提交評論