




已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第 17 章LabVIEW與數(shù)據(jù)庫的鏈接圖17-1 Database子選板17.1 Database Connectivity工具包介紹NI為LabVIEW用戶提供了一個專門和數(shù)據(jù)庫鏈接的工具包:Database Connectivity。安裝好工具包后,Database Connectivity工具包的VI將會在函數(shù)選板的附加工具包列中出現(xiàn)。Database子選板如圖17-1所示。DB Tools Open Connection:打開數(shù)據(jù)庫連接,如圖17-2(a)所示。DB Tools Close Connection:關閉數(shù)據(jù)庫連接,如圖17-2(b)所示。 圖17-2(a) DB Tools Open Connection 圖17-2(b) DB Tools Close ConnectionDB Tools Insert Data:根據(jù)數(shù)據(jù)庫連接插入一列新的數(shù)據(jù),如圖17-3(a)所示。DB Tools Select Data:根據(jù)數(shù)據(jù)庫連接從數(shù)據(jù)庫中提取一列數(shù)據(jù),如圖17-3(b)所示。 圖17-3(a) DB Tools Insert Data 圖17-3(b) DB Tools Select DataDB Tools Create Table:根據(jù)數(shù)據(jù)庫連接創(chuàng)建一個新的表格。輸入?yún)?shù)表格和行信息分別表示表格的名稱和表格中每行的屬性,如圖17-4(a)所示。DB Tools Drop Table:根據(jù)數(shù)據(jù)庫連接刪除一個由輸入?yún)?shù)表格指定名稱的表格,如圖17-4(b)所示。 圖17-4(a) DB Tools Create Table 圖17-4(b) DB Tools Drop TableDatabase Variant To Data:將數(shù)據(jù)庫變量轉換為由輸入?yún)?shù)類型指定的LabVIEW數(shù)據(jù)類型,如圖17-5所示。Utility子選板比較常用的函數(shù)有DB Tools List Tables.vi與DB Tools List Columns.vi。在這里只介紹這兩個VI,其他的VI查看該工具包的幫助文件,很容易就可以理解函數(shù)的用法,如圖17-6所示。 圖17-5 Database Variant To Data 圖17-6 Utility子選板DB Tools List Tables:根據(jù)數(shù)據(jù)連接返回數(shù)據(jù)庫中的所有表格,如圖17-7(a)所示。DB Tools List Columns:根據(jù)數(shù)據(jù)庫連接返回輸入?yún)?shù)表格的所有列,如圖17-7(b)所示。 圖17-7(a) DB Tools List Tables 圖17-7(b) DB Tools List Columns對Advanced子選板也只介紹比較常用的VI,其他的VI在應用中不會經(jīng)常涉及到,這里不再贅述,如圖17-8所示。圖17-8 Advanced子選板DB Tools Execute Query:執(zhí)行輸入的SQL語句,并返回一個數(shù)據(jù)庫引用,如圖17-9(a)所示。DB Tools Fetch Recordset Data:根據(jù)記錄引用從文件中獲取數(shù)據(jù),如圖17-9(b)所示。 圖17-9(a) DB Tools Execute Query 圖17-9(b) DB Tools Fetch Recordset DataDB Tools Free Object:通過釋放引用來關閉目標,如圖17-10所示。圖17-10 DB Tools Free Object17.2 Database Connectivity應用典型實例17.2.1 在Access中建立一個數(shù)據(jù)庫使用NI所提供的數(shù)據(jù)庫工具包Database Connectivity只能操作數(shù)據(jù)庫,但是無法創(chuàng)建數(shù)據(jù)庫,因此需要借助第三方數(shù)據(jù)庫管理系統(tǒng),如Access等來創(chuàng)建數(shù)據(jù)庫。首先我們建立一個Data.mdb的數(shù)據(jù)庫文件。打開Microsoft Access軟件,單擊文件新建,選擇空數(shù)據(jù)庫,保存到文件夾下。創(chuàng)建方法如圖17-11所示。圖17-11 在Access中創(chuàng)建數(shù)據(jù)庫表格在利用Database Connectivity工具包操作數(shù)據(jù)庫之前,需要先連接數(shù)據(jù)庫,連接數(shù)據(jù)庫的方法有以下兩種。1利用DSN連接數(shù)據(jù)庫LabVIEW數(shù)據(jù)庫工具包基于ODBC(Open Database Connectivity)技術,在使用ODBC API函數(shù)之前,需要提供數(shù)據(jù)源名DSN(Data Source Names)才能連接到實際數(shù)據(jù)庫,所以需要首先創(chuàng)建DSN。Database Connectivity工具包與ODBC的關系如圖17-12所示。打開Windows控制面板管理工具,選擇數(shù)據(jù)源,進入“ODBC數(shù)據(jù)源管理器”對話框,如圖17-13所示。 圖17-12 DB Tools與ODBC的關系 圖17-13 “ODBC數(shù)據(jù)源管理器”對話框在“用戶DSN”頁面下創(chuàng)建的數(shù)據(jù)源只有本用戶才能訪問,在“系統(tǒng)DSN”頁面下創(chuàng)建的數(shù)據(jù)源,該系統(tǒng)下的所有用戶都可以訪問。在此選擇“用戶DSN”,單擊“添加”按鈕,在彈出的“創(chuàng)建新數(shù)據(jù)源”對話框中選擇“Driver do Microsoft Access(*mdb)”,然后單擊“完成”按鈕,如圖17-14所示。隨后彈出“ODBC Microsoft Access安裝”對話框,輸入“數(shù)據(jù)源名”,如“LSData”,然后單擊“選擇”按鈕,選擇建立好的Data.mdb數(shù)據(jù)庫文件,單擊“確定”按鈕,如圖17-15所示。 圖17-14 “創(chuàng)建新數(shù)據(jù)源”對話框 圖17-15 “ODBC Microsoft Access安裝”對話框完成以上配置后,就可以在“用戶DSN”頁面下看到新創(chuàng)建的名為LSData的DSN了。單擊“確定”按鈕可完成DSN的建立。按照圖17-16所示的程序框圖編程,在DB Tools Open Connection.vi的輸入?yún)?shù)Connection information輸入創(chuàng)建的數(shù)據(jù)源名稱LSData,運行該程序,status并沒有亮起示警,說明數(shù)據(jù)源可以正常連接。2利用UDL連接數(shù)據(jù)庫Microsoft還提供了另一種技術,即ActiveX數(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ù)庫連接。在Data.mdb所在的文件夾下單擊鼠標右鍵,在彈出的快捷菜單中選擇新建Microsoft數(shù)據(jù)鏈接,如圖17-17所示。命名新建的數(shù)據(jù)庫鏈接名稱為LSData.udl。 圖17-16 在程序中連接數(shù)據(jù)庫 圖17-17 新建數(shù)據(jù)鏈接雙擊打開LSData.udl文件,切換到“提供程序”頁面,從中選擇“Microsoft Jet 4.0 OLE DB Provider”,設置完成單擊“下一步”按鈕,如圖17-18所示。切換到“連接”頁面,在“1.選擇或輸入數(shù)據(jù)庫名稱”文本框右側,單擊按鈕,選擇已經(jīng)創(chuàng)建好的數(shù)據(jù)庫。完成后單擊“測試連接”按鈕,彈出“測試連接成功”對話框,表示已經(jīng)成功連接數(shù)據(jù)庫,如圖17-19所示。 圖17-18 “數(shù)據(jù)鏈接屬性”對話框 圖17-19 成功連接數(shù)據(jù)庫完成后,按照圖17-20所示的程序框圖編程。DB Tools Open Connection.vi的輸入?yún)?shù)Connection Information輸入前面所創(chuàng)建的UDL文件路徑。運行該VI,status燈并無示警亮起,說明連接成功。圖17-20 在程序中成功連接數(shù)據(jù)庫17.2.2 數(shù)據(jù)庫基本操作連接上數(shù)據(jù)庫后,就可以利用Database Connectivity的工具包對數(shù)據(jù)庫進行操作了。本節(jié)介紹數(shù)據(jù)庫中比較常用的幾種基本操作,包括創(chuàng)建表格、刪除表格、添加記錄、查詢記錄等。1創(chuàng)建表格數(shù)據(jù)表中的每一行表示一個記錄,在工具包中用Record來表示;每一列表示記錄中的一個字段,在工具包中用Field表示。能夠標識表中某一行的屬性或屬性組稱做主鍵,一個表只能擁有一個主鍵,但可以有多個候選索引。查詢上一節(jié)中的函數(shù)介紹,VI:用于實現(xiàn)創(chuàng)建新的表格,輸入?yún)?shù)Table是所創(chuàng)建的新的數(shù)據(jù)表名稱,Column Information指定表格每一列的屬性,如圖17-21所示。Column name輸入字段名稱,data type輸入該字段的數(shù)據(jù)類型,siz輸入該字段的大小。注意這里的data type與LabVIEW所能支持的數(shù)據(jù)類型不同,圖17-22所示為data type下拉框所顯示的數(shù)據(jù)類型。圖17-23所示為LabVIEW數(shù)據(jù)類型和Database Connectivity工具包中data type數(shù)據(jù)類型的對應關系。 圖17-21 Column Information欄圖17-22 數(shù)據(jù)庫中data 圖17-23 LabVIEW數(shù)據(jù)類型與type的數(shù)據(jù)類型 DB Tools中數(shù)據(jù)類型對照按照圖17-24所示的程序框圖編程,table輸入Data.2008報表,column information分別輸入Name/String/50和Age/String/50。運行該程序后,打開Data.mdb,創(chuàng)建一個新的表格名為2008報表,有兩個字段:Name和Age。2刪除表格相應的,也有刪除數(shù)據(jù)庫表格的函數(shù)。查找一下上一節(jié)數(shù)據(jù)庫函數(shù)的介紹,DB Tools Drop Table.vi具有刪除數(shù)據(jù)庫表格的功能。 圖17-24 創(chuàng)建新表按照圖17-25所示的程序框圖編程,把之前創(chuàng)建的數(shù)據(jù)庫表格“2008報表”刪除。雙擊打開Data.mdb數(shù)據(jù)庫查看,2008報表數(shù)據(jù)文件已經(jīng)成功被刪除。圖17-25 刪除表格3添加記錄添加一條記錄由函數(shù)DB Tools Insert Data.vi來完成。該VI的輸入?yún)?shù)table表示要插入的數(shù)據(jù)庫表格名稱;data表示要插入的數(shù)據(jù);columns表示對應的字段的名字,其數(shù)據(jù)類型是一個字符串數(shù)組。圖17-26 添加記錄按照圖17-26所示的程序框圖編程,因為我們在創(chuàng)建表格的時候指定了段名為Name和Age,并且指定數(shù)據(jù)類型為String,因此在插入一條記錄時,插入的數(shù)據(jù)也要按照相應的數(shù)據(jù)類型來設置。運行完該程序后觀察數(shù)據(jù)庫表格的變化。其中函數(shù)DB Tools List Columns.vi列出了數(shù)據(jù)庫表格的段名。該函數(shù)的輸出段名可以直接傳給DB Tools Insert Data.vi的輸入column。4查詢記錄Database Connectivity工具包并沒有設置查詢一條記錄的函數(shù)。函數(shù)DB Tools Select Data.vi把所連接的數(shù)據(jù)庫表格的所有數(shù)據(jù)都讀取出來,用戶只能從讀取出來的數(shù)據(jù)經(jīng)過判斷得出其中的某一條符合結論的數(shù)據(jù)。按照圖17-27所示的程序框圖編程。圖17-27 查詢記錄函數(shù)Database Variant To Data用于將數(shù)據(jù)庫動態(tài)變量轉換成指定類型的數(shù)據(jù)。在該例子中轉換為字符串變量。但是當數(shù)據(jù)庫中的數(shù)據(jù)有成千上萬條記錄甚至更多呢,此時已經(jīng)無法通過讀取全部的記錄,然后再檢索的方法來查找需要的那一條數(shù)據(jù)。Database Connectivity工具包完全支持SQL語言。注意觀察的話,可以發(fā)現(xiàn)函數(shù)DB Tools Select Data.vi還有一個輸入?yún)?shù)optional clause,該端按照SQL語法輸入條件語句。Database Connectivity工具包的用戶手冊附錄A上有SQLd 快速參考手冊,SQL的條件查詢語法格式如圖17-28所示。圖17-28 SQL的條件查詢語法而函數(shù)DB Tools Select Data.vi已經(jīng)把SELECT語句編寫好集成在函數(shù)中了,用戶只需要在輸入端optional clause添加WHERE的條件語句即可。圖17-29所示是從“2008報表”這張數(shù)據(jù)庫表格中找出字段Name等于字符串“郭靖”的記錄讀取出來。圖17-29 按照條件搜索記錄17.2.3 SQL語句的操作數(shù)據(jù)庫操作除了創(chuàng)建表格、刪除表格、添加記錄、查詢記錄等功能以外,常用的還有刪除記錄、更新數(shù)據(jù)等操作,但是這些操作并沒有現(xiàn)成的VIK可以使用,因此需要借助SQL語句以及SQL語句的執(zhí)行操作函數(shù)來實現(xiàn)。雙擊打開DB Tools Select Data.vi,打開它的程序框圖,如圖17-30所示。圖17-30 DB Tools SelectData.viDB Tools Select Data.vi先創(chuàng)建了SQL語句,然后用DB Tools Execute Query.vi來執(zhí)行SQL語句,以此實現(xiàn)對數(shù)據(jù)庫的操作。因此,在編程中也可以利用SQL語句和該函數(shù)來實現(xiàn)Database Connectivity Tools工具包中沒有提供的功能。1用SQL實現(xiàn)數(shù)據(jù)查詢操作按照圖17-31所示編程,查詢字段Name為郭靖的記錄。圖17-31 按照條件搜索記錄函數(shù)DB Tools Select Data.vi的功能為獲取記錄數(shù)據(jù),輸入?yún)?shù)Column index是搜索的開始索引,這里設置為0,即從0開始運行該函數(shù)。2用SQL刪除一條記錄查詢SQL的參考手冊,刪除一條記錄的語句是“delete”,其語法是:DELETE FROM table_nameWHERE column_name=some_value按照圖17-32編寫程序,刪除一條字段Name為“郭靖”的記錄。圖17-32 刪除記錄注意:在使用“delete”語句時,要注意以下兩點。l “delete”語句不能刪除單個字段的值,只能刪除一行、多行、所有行,或一行也不刪除。l “delete”語句僅能刪除記錄,無法刪除數(shù)據(jù)庫表格本身;刪除表要用“drop”語句;若要刪除表格,則可使用DB Tools Drop talbe.vi。3壓縮數(shù)據(jù)庫刪除了記錄后,數(shù)據(jù)庫文件的大小并沒有減小,即使是把數(shù)據(jù)庫的記錄全部刪除,結果仍然是一樣。這是因為數(shù)據(jù)庫在使用一段時間以后,會出現(xiàn)因數(shù)據(jù)刪除造成數(shù)據(jù)庫中空閑空間太多的情況,這就需要減少分配給數(shù)據(jù)庫文件和事物日志文件的磁盤空間,以免浪費磁盤空間。Microsoft提供了一個壓縮數(shù)據(jù)庫的方法,其思想是使用ADO的擴展:Microsoft Jet OLE DB Provider and Replication Objects(JRO)中的方法CompactDatabase。Jet對象在文件Msjro.dll里面,如圖17-33所示。圖17-33 Msjro.dll位置那么LabVIEW如何訪問Jet對象呢,下面介紹訪問的方法。在前面板放置一個自動化引用句柄,在右鍵菜單中選擇“選擇ActiveX類瀏覽”,在彈出的“從類型庫中選擇對象”對話框中單擊“瀏覽”按鈕,按照上圖路徑選擇Msjro.dll,然后在對象選擇列表框中選擇“JetEngine(JRO.JetEngine.2.6)”,單擊“確定”按鈕完成ActiveX類的配置。圖17-34 壓縮數(shù)據(jù)庫文件在程序框圖中放置一個調用節(jié)點,右鍵單擊該節(jié)點,選擇方法“CompressDatabase”,到此就實現(xiàn)了LabVIEW中調用Jet對象的“CompressDatabase”的方法,如圖17-34所示。這個方法僅僅是對原數(shù)據(jù)庫做了一個壓縮后的備份,所以還需要把原文件刪除,用這個備份來替代原數(shù)據(jù)庫文件。刪除文件的方法可以參考第9章。4用SQL實現(xiàn)修改數(shù)據(jù)操作在SQL中,修改一條記錄的語句是“update”,其語法為:UPDATE table_nameSET column_name=new_valueWHERE column_name=some_value可以按照圖17-35所示的程序框圖編寫程序。圖17-35 更新數(shù)據(jù)庫記錄17.3 生成可執(zhí)行文件和安裝文件17.3.1 生成可執(zhí)行文件圖17-36 在項目中添加數(shù)據(jù)庫文件在生成可執(zhí)行文件時,用戶不需要關心UDL文件等問題,唯一需要關注的是把所有用到的數(shù)據(jù)庫文件添加到應用程序的“始終包括”列表框中。首先要創(chuàng)建工程DB.lvproj,并把之前所創(chuàng)建的文件ODBC連接數(shù)據(jù)源.vi添加到項目中,之前所創(chuàng)建的Data.mdb放置于該項目目錄下的data文件夾下。按照上面的方法重新連接設置ODBC數(shù)據(jù)源,如圖17
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)培訓管理課件模板
- Photoshop平面設計基礎 課件 任務4.2 立體字設計
- 優(yōu)化治療方案-甲磺酸伊馬替尼與TKI序貫治療
- 企業(yè)培訓小課件視頻
- 滄州房屋租賃合同租賃物保險與理賠服務合同
- 豬場欄位保養(yǎng)方案
- 租賃倉庫后續(xù)管理方案
- 電力供應企業(yè)分公司設立及輸電合同
- 特色小吃店品牌授權及店鋪轉讓合同范本
- 舊學院修繕改造方案
- 杭四中分班考數(shù)學試題卷
- 會議系統(tǒng)施工施工方法及工藝要求
- 收割機買賣合同正規(guī)范本版
- 臨床成人ICU患者外周動脈導管管理要點
- 81.GJB 1112A-2004 軍用機場場道工程施工及驗收規(guī)范
- DZ∕T 0130-2006 地質礦產(chǎn)實驗室測試質量管理規(guī)范(正式版)
- 計劃開、竣工日期和施工進度網(wǎng)絡圖112
- 2024初中數(shù)學競賽七年級競賽輔導講義七年級專題01 質數(shù)那些事
- 德宏傣族景頗族自治州緬籍“三非”人員管理問題研究的開題報告
- 手繪pop海報制作
- 干濕交替環(huán)境下混凝土受硫酸鹽侵蝕劣化機理
評論
0/150
提交評論