LabVIEW與數(shù)據(jù)庫(kù)的鏈接.doc_第1頁(yè)
LabVIEW與數(shù)據(jù)庫(kù)的鏈接.doc_第2頁(yè)
LabVIEW與數(shù)據(jù)庫(kù)的鏈接.doc_第3頁(yè)
LabVIEW與數(shù)據(jù)庫(kù)的鏈接.doc_第4頁(yè)
LabVIEW與數(shù)據(jù)庫(kù)的鏈接.doc_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第 17 章LabVIEW與數(shù)據(jù)庫(kù)的鏈接圖17-1 Database子選板17.1 Database Connectivity工具包介紹NI為L(zhǎng)abVIEW用戶提供了一個(gè)專門和數(shù)據(jù)庫(kù)鏈接的工具包:Database Connectivity。安裝好工具包后,Database Connectivity工具包的VI將會(huì)在函數(shù)選板的附加工具包列中出現(xiàn)。Database子選板如圖17-1所示。DB Tools Open Connection:打開(kāi)數(shù)據(jù)庫(kù)連接,如圖17-2(a)所示。DB Tools Close Connection:關(guān)閉數(shù)據(jù)庫(kù)連接,如圖17-2(b)所示。 圖17-2(a) DB Too

2、ls Open Connection 圖17-2(b) DB Tools Close ConnectionDB Tools Insert Data:根據(jù)數(shù)據(jù)庫(kù)連接插入一列新的數(shù)據(jù),如圖17-3(a)所示。DB Tools Select Data:根據(jù)數(shù)據(jù)庫(kù)連接從數(shù)據(jù)庫(kù)中提取一列數(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ù)庫(kù)連接創(chuàng)建一個(gè)新的表格。輸入?yún)?shù)表格和行信息分別表示表格的名稱和表格中每行的屬性,如圖17-4(a)所示。DB Tool

3、s Drop Table:根據(jù)數(shù)據(jù)庫(kù)連接刪除一個(gè)由輸入?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ù)庫(kù)變量轉(zhuǎn)換為由輸入?yún)?shù)類型指定的LabVIEW數(shù)據(jù)類型,如圖17-5所示。Utility子選板比較常用的函數(shù)有DB Tools List Tables.vi與DB Tools List Columns.vi。在這里只介紹這兩個(gè)VI,其他的VI查看該工具包的幫助文件,很容易就可以理解函數(shù)的用法,如圖17-6所示。 圖17-

4、5 Database Variant To Data 圖17-6 Utility子選板DB Tools List Tables:根據(jù)數(shù)據(jù)連接返回?cái)?shù)據(jù)庫(kù)中的所有表格,如圖17-7(a)所示。DB Tools List Columns:根據(jù)數(shù)據(jù)庫(kù)連接返回輸入?yún)?shù)表格的所有列,如圖17-7(b)所示。 圖17-7(a) DB Tools List Tables 圖17-7(b) DB Tools List Columns對(duì)Advanced子選板也只介紹比較常用的VI,其他的VI在應(yīng)用中不會(huì)經(jīng)常涉及到,這里不再贅述,如圖17-8所示。圖17-8 Advanced子選板DB Tools Execute

5、Query:執(zhí)行輸入的SQL語(yǔ)句,并返回一個(gè)數(shù)據(jù)庫(kù)引用,如圖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:通過(guò)釋放引用來(lái)關(guān)閉目標(biāo),如圖17-10所示。圖17-10 DB Tools Free Object17.2 Database Connectivity應(yīng)用典型實(shí)例17.2.1 在Access中建立一個(gè)數(shù)據(jù)庫(kù)使用NI所提供的

6、數(shù)據(jù)庫(kù)工具包Database Connectivity只能操作數(shù)據(jù)庫(kù),但是無(wú)法創(chuàng)建數(shù)據(jù)庫(kù),因此需要借助第三方數(shù)據(jù)庫(kù)管理系統(tǒng),如Access等來(lái)創(chuàng)建數(shù)據(jù)庫(kù)。首先我們建立一個(gè)Data.mdb的數(shù)據(jù)庫(kù)文件。打開(kāi)Microsoft Access軟件,單擊文件新建,選擇空數(shù)據(jù)庫(kù),保存到文件夾下。創(chuàng)建方法如圖17-11所示。圖17-11 在Access中創(chuàng)建數(shù)據(jù)庫(kù)表格在利用Database Connectivity工具包操作數(shù)據(jù)庫(kù)之前,需要先連接數(shù)據(jù)庫(kù),連接數(shù)據(jù)庫(kù)的方法有以下兩種。1利用DSN連接數(shù)據(jù)庫(kù)LabVIEW數(shù)據(jù)庫(kù)工具包基于ODBC(Open Database Connectivity)技術(shù),在使

7、用ODBC API函數(shù)之前,需要提供數(shù)據(jù)源名DSN(Data Source Names)才能連接到實(shí)際數(shù)據(jù)庫(kù),所以需要首先創(chuàng)建DSN。Database Connectivity工具包與ODBC的關(guān)系如圖17-12所示。打開(kāi)Windows控制面板管理工具,選擇數(shù)據(jù)源,進(jìn)入“ODBC數(shù)據(jù)源管理器”對(duì)話框,如圖17-13所示。 圖17-12 DB Tools與ODBC的關(guān)系 圖17-13 “ODBC數(shù)據(jù)源管理器”對(duì)話框在“用戶DSN”頁(yè)面下創(chuàng)建的數(shù)據(jù)源只有本用戶才能訪問(wèn),在“系統(tǒng)DSN”頁(yè)面下創(chuàng)建的數(shù)據(jù)源,該系統(tǒng)下的所有用戶都可以訪問(wèn)。在此選擇“用戶DSN”,單擊“添加”按鈕,在彈出的“創(chuàng)建新數(shù)據(jù)源

8、”對(duì)話框中選擇“Driver do Microsoft Access(*mdb)”,然后單擊“完成”按鈕,如圖17-14所示。隨后彈出“ODBC Microsoft Access安裝”對(duì)話框,輸入“數(shù)據(jù)源名”,如“LSData”,然后單擊“選擇”按鈕,選擇建立好的Data.mdb數(shù)據(jù)庫(kù)文件,單擊“確定”按鈕,如圖17-15所示。 圖17-14 “創(chuàng)建新數(shù)據(jù)源”對(duì)話框 圖17-15 “ODBC Microsoft Access安裝”對(duì)話框完成以上配置后,就可以在“用戶DSN”頁(yè)面下看到新創(chuàng)建的名為L(zhǎng)SData的DSN了。單擊“確定”按鈕可完成DSN的建立。按照?qǐng)D17-16所示的程序框圖編程,在D

9、B Tools Open Connection.vi的輸入?yún)?shù)Connection information輸入創(chuàng)建的數(shù)據(jù)源名稱LSData,運(yùn)行該程序,status并沒(méi)有亮起示警,說(shuō)明數(shù)據(jù)源可以正常連接。2利用UDL連接數(shù)據(jù)庫(kù)Microsoft還提供了另一種技術(shù),即ActiveX數(shù)據(jù)對(duì)象ADO(ActiveX Data Objects)技術(shù)。ADO是Microsoft提出的應(yīng)用程序接口(API)用以實(shí)現(xiàn)訪問(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ù)連接。在Data.mdb所在的文件夾下單擊鼠標(biāo)右鍵,在彈出的快

10、捷菜單中選擇新建Microsoft數(shù)據(jù)鏈接,如圖17-17所示。命名新建的數(shù)據(jù)庫(kù)鏈接名稱為L(zhǎng)SData.udl。 圖17-16 在程序中連接數(shù)據(jù)庫(kù) 圖17-17 新建數(shù)據(jù)鏈接雙擊打開(kāi)LSData.udl文件,切換到“提供程序”頁(yè)面,從中選擇“Microsoft Jet 4.0 OLE DB Provider”,設(shè)置完成單擊“下一步”按鈕,如圖17-18所示。切換到“連接”頁(yè)面,在“1.選擇或輸入數(shù)據(jù)庫(kù)名稱”文本框右側(cè),單擊按鈕,選擇已經(jīng)創(chuàng)建好的數(shù)據(jù)庫(kù)。完成后單擊“測(cè)試連接”按鈕,彈出“測(cè)試連接成功”對(duì)話框,表示已經(jīng)成功連接數(shù)據(jù)庫(kù),如圖17-19所示。 圖17-18 “數(shù)據(jù)鏈接屬性”對(duì)話框 圖1

11、7-19 成功連接數(shù)據(jù)庫(kù)完成后,按照?qǐng)D17-20所示的程序框圖編程。DB Tools Open Connection.vi的輸入?yún)?shù)Connection Information輸入前面所創(chuàng)建的UDL文件路徑。運(yùn)行該VI,status燈并無(wú)示警亮起,說(shuō)明連接成功。圖17-20 在程序中成功連接數(shù)據(jù)庫(kù)17.2.2 數(shù)據(jù)庫(kù)基本操作連接上數(shù)據(jù)庫(kù)后,就可以利用Database Connectivity的工具包對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作了。本節(jié)介紹數(shù)據(jù)庫(kù)中比較常用的幾種基本操作,包括創(chuàng)建表格、刪除表格、添加記錄、查詢記錄等。1創(chuàng)建表格數(shù)據(jù)表中的每一行表示一個(gè)記錄,在工具包中用Record來(lái)表示;每一列表示記錄中的一

12、個(gè)字段,在工具包中用Field表示。能夠標(biāo)識(shí)表中某一行的屬性或?qū)傩越M稱做主鍵,一個(gè)表只能擁有一個(gè)主鍵,但可以有多個(gè)候選索引。查詢上一節(jié)中的函數(shù)介紹,VI:用于實(shí)現(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所示為L(zhǎng)abVIEW數(shù)據(jù)類型和Database Connect

13、ivity工具包中data type數(shù)據(jù)類型的對(duì)應(yīng)關(guān)系。 圖17-21 Column Information欄圖17-22 數(shù)據(jù)庫(kù)中data 圖17-23 LabVIEW數(shù)據(jù)類型與type的數(shù)據(jù)類型 DB Tools中數(shù)據(jù)類型對(duì)照按照?qǐng)D17-24所示的程序框圖編程,table輸入Data.2008報(bào)表,column information分別輸入Name/String/50和Age/String/50。運(yùn)行該程序后,打開(kāi)Data.mdb,創(chuàng)建一個(gè)新的表格名為2008報(bào)表,有兩個(gè)字段:Name和Age。2刪除表格相應(yīng)的,也有刪除數(shù)據(jù)庫(kù)表格的函數(shù)。查找一下上一節(jié)數(shù)據(jù)庫(kù)函數(shù)的介紹,DB Tools

14、Drop Table.vi具有刪除數(shù)據(jù)庫(kù)表格的功能。 圖17-24 創(chuàng)建新表按照?qǐng)D17-25所示的程序框圖編程,把之前創(chuàng)建的數(shù)據(jù)庫(kù)表格“2008報(bào)表”刪除。雙擊打開(kāi)Data.mdb數(shù)據(jù)庫(kù)查看,2008報(bào)表數(shù)據(jù)文件已經(jīng)成功被刪除。圖17-25 刪除表格3添加記錄添加一條記錄由函數(shù)DB Tools Insert Data.vi來(lái)完成。該VI的輸入?yún)?shù)table表示要插入的數(shù)據(jù)庫(kù)表格名稱;data表示要插入的數(shù)據(jù);columns表示對(duì)應(yīng)的字段的名字,其數(shù)據(jù)類型是一個(gè)字符串?dāng)?shù)組。圖17-26 添加記錄按照?qǐng)D17-26所示的程序框圖編程,因?yàn)槲覀冊(cè)趧?chuàng)建表格的時(shí)候指定了段名為Name和Age,并且指定數(shù)據(jù)

15、類型為String,因此在插入一條記錄時(shí),插入的數(shù)據(jù)也要按照相應(yīng)的數(shù)據(jù)類型來(lái)設(shè)置。運(yùn)行完該程序后觀察數(shù)據(jù)庫(kù)表格的變化。其中函數(shù)DB Tools List Columns.vi列出了數(shù)據(jù)庫(kù)表格的段名。該函數(shù)的輸出段名可以直接傳給DB Tools Insert Data.vi的輸入column。4查詢記錄Database Connectivity工具包并沒(méi)有設(shè)置查詢一條記錄的函數(shù)。函數(shù)DB Tools Select Data.vi把所連接的數(shù)據(jù)庫(kù)表格的所有數(shù)據(jù)都讀取出來(lái),用戶只能從讀取出來(lái)的數(shù)據(jù)經(jīng)過(guò)判斷得出其中的某一條符合結(jié)論的數(shù)據(jù)。按照?qǐng)D17-27所示的程序框圖編程。圖17-27 查詢記錄函數(shù)D

16、atabase Variant To Data用于將數(shù)據(jù)庫(kù)動(dòng)態(tài)變量轉(zhuǎn)換成指定類型的數(shù)據(jù)。在該例子中轉(zhuǎn)換為字符串變量。但是當(dāng)數(shù)據(jù)庫(kù)中的數(shù)據(jù)有成千上萬(wàn)條記錄甚至更多呢,此時(shí)已經(jīng)無(wú)法通過(guò)讀取全部的記錄,然后再檢索的方法來(lái)查找需要的那一條數(shù)據(jù)。Database Connectivity工具包完全支持SQL語(yǔ)言。注意觀察的話,可以發(fā)現(xiàn)函數(shù)DB Tools Select Data.vi還有一個(gè)輸入?yún)?shù)optional clause,該端按照SQL語(yǔ)法輸入條件語(yǔ)句。Database Connectivity工具包的用戶手冊(cè)附錄A上有SQLd 快速參考手冊(cè),SQL的條件查詢語(yǔ)法格式如圖17-28所示。圖17-

17、28 SQL的條件查詢語(yǔ)法而函數(shù)DB Tools Select Data.vi已經(jīng)把SELECT語(yǔ)句編寫好集成在函數(shù)中了,用戶只需要在輸入端optional clause添加WHERE的條件語(yǔ)句即可。圖17-29所示是從“2008報(bào)表”這張數(shù)據(jù)庫(kù)表格中找出字段Name等于字符串“郭靖”的記錄讀取出來(lái)。圖17-29 按照條件搜索記錄17.2.3 SQL語(yǔ)句的操作數(shù)據(jù)庫(kù)操作除了創(chuàng)建表格、刪除表格、添加記錄、查詢記錄等功能以外,常用的還有刪除記錄、更新數(shù)據(jù)等操作,但是這些操作并沒(méi)有現(xiàn)成的VIK可以使用,因此需要借助SQL語(yǔ)句以及SQL語(yǔ)句的執(zhí)行操作函數(shù)來(lái)實(shí)現(xiàn)。雙擊打開(kāi)DB Tools Select

18、Data.vi,打開(kāi)它的程序框圖,如圖17-30所示。圖17-30 DB Tools SelectData.viDB Tools Select Data.vi先創(chuàng)建了SQL語(yǔ)句,然后用DB Tools Execute Query.vi來(lái)執(zhí)行SQL語(yǔ)句,以此實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作。因此,在編程中也可以利用SQL語(yǔ)句和該函數(shù)來(lái)實(shí)現(xiàn)Database Connectivity Tools工具包中沒(méi)有提供的功能。1用SQL實(shí)現(xiàn)數(shù)據(jù)查詢操作按照?qǐng)D17-31所示編程,查詢字段Name為郭靖的記錄。圖17-31 按照條件搜索記錄函數(shù)DB Tools Select Data.vi的功能為獲取記錄數(shù)據(jù),輸入?yún)?shù)Col

19、umn index是搜索的開(kāi)始索引,這里設(shè)置為0,即從0開(kāi)始運(yùn)行該函數(shù)。2用SQL刪除一條記錄查詢SQL的參考手冊(cè),刪除一條記錄的語(yǔ)句是“delete”,其語(yǔ)法是:DELETE FROM table_nameWHERE column_name=some_value按照?qǐng)D17-32編寫程序,刪除一條字段Name為“郭靖”的記錄。圖17-32 刪除記錄注意:在使用“delete”語(yǔ)句時(shí),要注意以下兩點(diǎn)。l “delete”語(yǔ)句不能刪除單個(gè)字段的值,只能刪除一行、多行、所有行,或一行也不刪除。l “delete”語(yǔ)句僅能刪除記錄,無(wú)法刪除數(shù)據(jù)庫(kù)表格本身;刪除表要用“drop”語(yǔ)句;若要?jiǎng)h除表格,則可

20、使用DB Tools Drop talbe.vi。3壓縮數(shù)據(jù)庫(kù)刪除了記錄后,數(shù)據(jù)庫(kù)文件的大小并沒(méi)有減小,即使是把數(shù)據(jù)庫(kù)的記錄全部刪除,結(jié)果仍然是一樣。這是因?yàn)閿?shù)據(jù)庫(kù)在使用一段時(shí)間以后,會(huì)出現(xiàn)因數(shù)據(jù)刪除造成數(shù)據(jù)庫(kù)中空閑空間太多的情況,這就需要減少分配給數(shù)據(jù)庫(kù)文件和事物日志文件的磁盤空間,以免浪費(fèi)磁盤空間。Microsoft提供了一個(gè)壓縮數(shù)據(jù)庫(kù)的方法,其思想是使用ADO的擴(kuò)展:Microsoft Jet OLE DB Provider and Replication Objects(JRO)中的方法CompactDatabase。Jet對(duì)象在文件Msjro.dll里面,如圖17-33所示。圖17-

21、33 Msjro.dll位置那么LabVIEW如何訪問(wèn)Jet對(duì)象呢,下面介紹訪問(wèn)的方法。在前面板放置一個(gè)自動(dòng)化引用句柄,在右鍵菜單中選擇“選擇ActiveX類瀏覽”,在彈出的“從類型庫(kù)中選擇對(duì)象”對(duì)話框中單擊“瀏覽”按鈕,按照上圖路徑選擇Msjro.dll,然后在對(duì)象選擇列表框中選擇“JetEngine(JRO.JetEngine.2.6)”,單擊“確定”按鈕完成ActiveX類的配置。圖17-34 壓縮數(shù)據(jù)庫(kù)文件在程序框圖中放置一個(gè)調(diào)用節(jié)點(diǎn),右鍵單擊該節(jié)點(diǎn),選擇方法“CompressDatabase”,到此就實(shí)現(xiàn)了LabVIEW中調(diào)用Jet對(duì)象的“CompressDatabase”的方法,如

22、圖17-34所示。這個(gè)方法僅僅是對(duì)原數(shù)據(jù)庫(kù)做了一個(gè)壓縮后的備份,所以還需要把原文件刪除,用這個(gè)備份來(lái)替代原數(shù)據(jù)庫(kù)文件。刪除文件的方法可以參考第9章。4用SQL實(shí)現(xiàn)修改數(shù)據(jù)操作在SQL中,修改一條記錄的語(yǔ)句是“update”,其語(yǔ)法為:UPDATE table_nameSET column_name=new_valueWHERE column_name=some_value可以按照?qǐng)D17-35所示的程序框圖編寫程序。圖17-35 更新數(shù)據(jù)庫(kù)記錄17.3 生成可執(zhí)行文件和安裝文件17.3.1 生成可執(zhí)行文件圖17-36 在項(xiàng)目中添加數(shù)據(jù)庫(kù)文件在生成可執(zhí)行文件時(shí),用戶不需要關(guān)心UDL文件等問(wèn)題,唯一需要關(guān)注的是把所有用到的數(shù)據(jù)庫(kù)文件添加到應(yīng)用程序的“始終包括”列表框中。首先要?jiǎng)?chuàng)建工程DB.lvproj,并把之前所創(chuàng)建的文件ODBC連接數(shù)據(jù)源.vi添加到項(xiàng)目中,之前所創(chuàng)建的Data.mdb放置于該項(xiàng)目目錄下的data文件夾下。按照上面的方法重新連接設(shè)置ODBC數(shù)據(jù)源,如圖17

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論