LabVIEW和數(shù)據(jù)庫(kù)的連接_第1頁(yè)
LabVIEW和數(shù)據(jù)庫(kù)的連接_第2頁(yè)
LabVIEW和數(shù)據(jù)庫(kù)的連接_第3頁(yè)
LabVIEW和數(shù)據(jù)庫(kù)的連接_第4頁(yè)
LabVIEW和數(shù)據(jù)庫(kù)的連接_第5頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

...wd......wd......wd...LabVIEW與數(shù)據(jù)庫(kù)的鏈接

2011-01-0711:37:57|

分類:\o"嵌入式系統(tǒng)"嵌入式系統(tǒng)|

標(biāo)簽:\l"m=0&t=3&c=labview與數(shù)據(jù)庫(kù)的鏈接"labview與數(shù)據(jù)庫(kù)的鏈接|字號(hào)大中小

訂閱

17.1

Database

Connectivity

工具包介紹NI為L(zhǎng)abVIEW用戶提供了一個(gè)專門(mén)和數(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

Tools

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

Tools

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-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

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中建設(shè)一個(gè)數(shù)據(jù)庫(kù)使用NI所提供的數(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ù)。首先我們建設(shè)一個(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ù),在使用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ù)源〞對(duì)話框中選擇“Driver

do

Microsoft

Access(*mdb)〞,然后單擊“完成〞按鈕,如圖17-14所示。隨后彈出“ODBC

Microsoft

Access安裝〞對(duì)話框,輸入“數(shù)據(jù)源名〞,如“LSData〞,然后單擊“選擇〞按鈕,選擇建設(shè)好的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的建設(shè)。按照?qǐng)D17-16所示的程序框圖編程,在DB

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)右鍵,在彈出的快捷菜單中選擇新建>>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ì)話框

圖17-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)表示;每一列表示記錄中的一個(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

Connectivity工具包中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

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)成功被刪除。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ù)組。按照?qǐng)D17-26所示的程序框圖編程,因?yàn)槲覀冊(cè)趧?chuàng)立表格的時(shí)候指定了段名為Name和Age,并且指定數(shù)據(jù)類型為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ù)Database

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-28

SQL的條件查詢語(yǔ)法而函數(shù)DB

Tools

Select

Data.vi已經(jīng)把SELECT語(yǔ)句編寫(xiě)好集成在函數(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

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ù)Column

index是搜索的開(kāi)場(chǎng)索引,這里設(shè)置為0,即從0開(kāi)場(chǎng)運(yùn)行該函數(shù)。2.用SQL刪除一條記錄查詢SQL的參考手冊(cè),刪除一條記錄的語(yǔ)句是“delete〞,其語(yǔ)法是:DELETE

FROM

table_nameWHERE

column_name=some_value按照?qǐng)D17-32編寫(xiě)程序,刪除一條字段Name為“郭靖〞的記錄。圖17-32

刪除記錄注意:在使用“delete〞語(yǔ)句時(shí),要注意以下兩點(diǎn)。l

“delete〞語(yǔ)句不能刪除單個(gè)字段的值,只能刪除一行、多行、所有行,或一行也不刪除。l

“delete〞語(yǔ)句僅能刪除記錄,無(wú)法刪除數(shù)據(jù)庫(kù)表格本身;刪除表要用“drop〞語(yǔ)句;假設(shè)要?jiǎng)h除表格,則可使用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ù)文件和事物日志文件的磁盤(pán)空間,以免浪費(fèi)磁盤(pán)空間。Microsoft提供了一個(gè)壓縮數(shù)據(jù)庫(kù)的方法,其思想是使用ADO的擴(kuò)展:Microsoft

Jet

OLE

DB

Provider

and

Replication

Objects(JRO)中的方法——CompactDatabase。Jet對(duì)象在文件Msjro.dll里面,如圖17-33所示。圖17-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類的配置。在程序框圖中放置一個(gè)調(diào)用節(jié)點(diǎn),右鍵單擊該節(jié)點(diǎn),選擇方法“CompressDatabase〞,到此就實(shí)現(xiàn)了LabVIEW中調(diào)用Jet對(duì)象的“CompressDatabase〞的方法,如圖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所示的程序框圖編寫(xiě)程序。圖17-35

更新數(shù)據(jù)庫(kù)記錄17.3

生成可執(zhí)行文件和安裝文件17.3.1

生成可執(zhí)行文件在生成可執(zhí)行文件時(shí),用戶不需要關(guān)心UDL文件等問(wèn)題,唯一需要關(guān)注的是把所有用到的數(shù)據(jù)庫(kù)文件添加到應(yīng)用程序的“始終包括〞列表框中。首先要?jiǎng)?chuàng)立工程DB.lvproj,并把之

溫馨提示

  • 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)論