徐小華 賀斌
昭通師范高等??茖W(xué)校
LabVIEW中訪問數(shù)據(jù)庫幾種不同方法的探討
徐小華 賀斌
昭通師范高等??茖W(xué)校
本文介紹并比較了LabVIEW中訪問數(shù)據(jù)庫的幾種方法,并重點(diǎn)討論了應(yīng)用ActiveX功能、LabSQL訪問數(shù)據(jù)庫的方法。把數(shù)據(jù)庫技術(shù)應(yīng)用于虛擬儀器中充分發(fā)揮了數(shù)據(jù)庫的管理優(yōu)勢,擴(kuò)展了虛擬儀器的功能。
LabVIEW;LabSQL;數(shù)據(jù)庫
LabVIEW(Laboratory Virtual Instrument Engineering Workbench是目前應(yīng)用最廣泛的虛擬儀器開發(fā)環(huán)境之一,它具有工業(yè)標(biāo)準(zhǔn)的圖形化編程工具,主要用于開發(fā)測試、測量和控制系統(tǒng)。但在使用LabVIEW編寫應(yīng)用系統(tǒng)時(shí),在很多場合需要對大量的數(shù)據(jù)進(jìn)行處理,這時(shí)需使用數(shù)據(jù)庫實(shí)現(xiàn)對需要的數(shù)據(jù)進(jìn)行處理。但是LabVIEW身并不具備數(shù)據(jù)庫訪問功能,不能像VB、VC++、Delphi非常方便地進(jìn)行數(shù)據(jù)庫程序的開發(fā),因此在LabVIEW開發(fā)中需解決與數(shù)據(jù)庫之間的互訪和管理問題。
LabVIEW中訪問數(shù)據(jù)庫方式有以下幾種方法:(1)利用中間文件存取數(shù)據(jù);(2) 利用NI公司的附加工具包LabVIEW SQL Toolkit實(shí)現(xiàn)對數(shù)據(jù)庫的訪問;(3) 利用其他語言編寫動(dòng)態(tài)鏈接庫DLL(Dynamic Link Library),再利用LabVIEW的調(diào)用庫函數(shù)節(jié)點(diǎn)CLFN(Calling Library Function Node)調(diào)用此DLL間接實(shí)現(xiàn)對數(shù)據(jù)庫的訪問;(4) 利用LabVIEW的ActiveX功能;(5) 通過第三方開發(fā)的免費(fèi)工具包LabSQL訪問。
第一種方法先將數(shù)據(jù)存入文件之中,在一定時(shí)刻或者是需要的時(shí)候在用第三方程序?qū)?shù)據(jù)導(dǎo)入到數(shù)據(jù)庫之中。這種方法用戶操作需分成兩個(gè)部分,磁盤文件作為中介,實(shí)時(shí)性不高,不方便使用。第二種方法NI公司的附加工具包需要另外購買且價(jià)格昂貴,它集成了一系列的高級功能模塊,這些模塊封裝了大多數(shù)的數(shù)據(jù)庫操作和一些高級的數(shù)據(jù)庫訪問功能。它的優(yōu)點(diǎn)是易于理解,操作簡單,缺點(diǎn)是增加系統(tǒng)成本。第三種方法需要從底層進(jìn)行復(fù)雜的編程才能實(shí)現(xiàn),對非專業(yè)編程人員來講是不現(xiàn)實(shí)的。第四種方法需調(diào)用Microsoft ADO對象,利用SQL語言實(shí)現(xiàn)數(shù)據(jù)庫的訪問。使用這種方法需要用戶對Microsoft ADO以及SQL語言有較深的了解。第五種方法是LabSQL將復(fù)雜的底層ADO及SQL操作封裝成一系列的LabSQL VIs,它幾乎可以訪問任何類型的數(shù)據(jù)庫。它的優(yōu)點(diǎn)是易于理解,操作簡單,不熟悉SQL 語言的用戶也可以很容易地使用,只需簡單的編程就可在LabVIEW中實(shí)現(xiàn)數(shù)據(jù)庫訪問。目前后兩種方法使用比較廣泛,下面將討論這兩種方法。
在使用ADO編程時(shí),首先需建立ADO對象在程序框圖面板中,選擇函數(shù)模板的“互連接口”的子模板中選擇“ActiveX”項(xiàng),再選擇“打開自動(dòng)化”控件并把它拖放到程序程序框圖面板上,在右擊菜單中點(diǎn)擊“選擇ActiveX 類”,在選擇瀏覽…,彈出“選擇ActiveX 類”對話框,在類型庫Type Library下拉列表中選擇“Microsoft ActiveX Data Objects 2.7 Library Version 2.7”,在下面的對象Objects列表欄中出現(xiàn)這個(gè)庫對LabVIEW可用的對象。如圖1所示。Connection對象用來連接和數(shù)據(jù)庫連接建立,Recordset對象用來處理記錄集。在利用“調(diào)用節(jié)點(diǎn)”控件來設(shè)置連接到數(shù)據(jù)源、生成SQL命令、關(guān)閉連接等相關(guān)操作的對象。
圖1 選擇ADO對象并引入程序
LabSQL VIs 按照功能可分為四類:Command VIs、Connection VIs、Recordset VIs、Top Level VIs。Command VIs 的功能是完成一系列的基本ADO 操作;Connection VIs的功能是管理LabVIEW與數(shù)據(jù)庫之間的連接;Recordset VIs用于對數(shù)據(jù)庫中的記錄進(jìn)行各種操作;TopLevel VIs屬于頂層的LabSQL 應(yīng)用,對前三類LabSQL VIs 某些功能的封裝。例如,SQL Execute.vi可用于直接執(zhí)行命令。
本實(shí)例是實(shí)現(xiàn)數(shù)據(jù)庫查詢的方法。實(shí)現(xiàn)數(shù)據(jù)庫查詢共有兩種方法,一是利用Recordset VIs實(shí)現(xiàn),二是用Connection VIs實(shí)現(xiàn),實(shí)例采用第一種方法來實(shí)現(xiàn)。使用LabSQL前,需要在Windows操作系統(tǒng)中的ODBC(Open Data Base Connectivity)數(shù)據(jù)源中創(chuàng)建一個(gè)DSN(Data Source Name,數(shù)據(jù)源名),本實(shí)例的數(shù)據(jù)源是DSN,數(shù)據(jù)表是測試。LabSQL與數(shù)據(jù)庫之間的連接就是建立在DSN基礎(chǔ)之上。具體步驟如下,第一步:使用ADO Connection Create. vi創(chuàng)建一個(gè)Connetction對象,然后使用ADO Connection Open.vi打開名為測試數(shù)據(jù)記錄的數(shù)據(jù)源,與數(shù)據(jù)庫文件建立連接。第二步:使用ADO Recordset Create. vi創(chuàng)建一個(gè)數(shù)據(jù)記錄對象,然后使用ADO Recordset open.vi打開一個(gè)記錄對象,使用SQL命令“SELECT*FROM 測試 where”結(jié)合檢索內(nèi)容實(shí)現(xiàn)數(shù)據(jù)庫數(shù)據(jù)檢索。第三步:使用ADO SQL Fetch.vi把用戶條件檢索的結(jié)果以表格的形式顯示出來。第四步:使用ADO Recordset Close.vi和ADO Connection Close.vi斷開與數(shù)據(jù)庫的連接,完成按條件查詢功能。如圖2是數(shù)據(jù)庫查詢程序框圖和圖3是數(shù)據(jù)庫查詢前面板。
圖2 數(shù)據(jù)查詢程序框圖
圖3 數(shù)據(jù)查詢前面板圖
綜上所述,使用LabVIEW訪問數(shù)據(jù)庫的基本步驟都是相同的,都要經(jīng)過連接數(shù)據(jù)庫、執(zhí)行操作、斷開連接這三個(gè)步驟。使用ADO主要優(yōu)點(diǎn)是易于使用,但需要用戶對Microsoft ADO以及SQL語言有較深的了解。使用LabSQL不用精通ActiveX技術(shù)和SQL語言,操作簡介,容易理解,但它對ADO的所有功能未進(jìn)行完全封裝,功能上有局限性。在實(shí)際應(yīng)用中,用戶究竟采用哪種方法要從項(xiàng)目難易程度、自身編程水平和技術(shù)經(jīng)濟(jì)等方面綜合考慮。
[1]劉君華.基于LabView的虛擬儀器設(shè)計(jì).電子工業(yè)出版社[M].2003
[2]NI Corp.LabView User Manual [M].USA.1998
[3]楊樂平,李海濤,趙勇,楊磊.LabVIEW高級程序設(shè)計(jì).北京:清華大學(xué)出版社.2003.2
[4]雷振.LabVIEW 7 Express實(shí)用技術(shù)教程.北京:中國鐵道出版社.2004. 250-251
[5]戴鵬飛,王勝開,等.測試工程與LabVIEW 應(yīng)用.電子工業(yè)出版社[M].2006.5
The paper analyzes several methods of accessing database with LabVIEW program. The methods of calling ActiveX and LabSQL under LabVIEW environment are fully discussed. The operation shows that the combination of database access technology and virtual instrument takes advantage of database in the side of data management and expands the functions of virtual inStrument.
LabVIEW; LabSQL; Database;
10.3969/j.issn.1001-8972.2011.07.067
地址:云南省昭通市昭通師范高等??茖W(xué)校。