徐小華 賀斌
昭通師范高等專科學校
LabVIEW中訪問數據庫幾種不同方法的探討
徐小華 賀斌
昭通師范高等專科學校
本文介紹并比較了LabVIEW中訪問數據庫的幾種方法,并重點討論了應用ActiveX功能、LabSQL訪問數據庫的方法。把數據庫技術應用于虛擬儀器中充分發揮了數據庫的管理優勢,擴展了虛擬儀器的功能。
LabVIEW;LabSQL;數據庫
LabVIEW(Laboratory Virtual Instrument Engineering Workbench是目前應用最廣泛的虛擬儀器開發環境之一,它具有工業標準的圖形化編程工具,主要用于開發測試、測量和控制系統。但在使用LabVIEW編寫應用系統時,在很多場合需要對大量的數據進行處理,這時需使用數據庫實現對需要的數據進行處理。但是LabVIEW身并不具備數據庫訪問功能,不能像VB、VC++、Delphi非常方便地進行數據庫程序的開發,因此在LabVIEW開發中需解決與數據庫之間的互訪和管理問題。
LabVIEW中訪問數據庫方式有以下幾種方法:(1)利用中間文件存取數據;(2) 利用NI公司的附加工具包LabVIEW SQL Toolkit實現對數據庫的訪問;(3) 利用其他語言編寫動態鏈接庫DLL(Dynamic Link Library),再利用LabVIEW的調用庫函數節點CLFN(Calling Library Function Node)調用此DLL間接實現對數據庫的訪問;(4) 利用LabVIEW的ActiveX功能;(5) 通過第三方開發的免費工具包LabSQL訪問。
第一種方法先將數據存入文件之中,在一定時刻或者是需要的時候在用第三方程序將數據導入到數據庫之中。這種方法用戶操作需分成兩個部分,磁盤文件作為中介,實時性不高,不方便使用。第二種方法NI公司的附加工具包需要另外購買且價格昂貴,它集成了一系列的高級功能模塊,這些模塊封裝了大多數的數據庫操作和一些高級的數據庫訪問功能。它的優點是易于理解,操作簡單,缺點是增加系統成本。第三種方法需要從底層進行復雜的編程才能實現,對非專業編程人員來講是不現實的。第四種方法需調用Microsoft ADO對象,利用SQL語言實現數據庫的訪問。使用這種方法需要用戶對Microsoft ADO以及SQL語言有較深的了解。第五種方法是LabSQL將復雜的底層ADO及SQL操作封裝成一系列的LabSQL VIs,它幾乎可以訪問任何類型的數據庫。它的優點是易于理解,操作簡單,不熟悉SQL 語言的用戶也可以很容易地使用,只需簡單的編程就可在LabVIEW中實現數據庫訪問。目前后兩種方法使用比較廣泛,下面將討論這兩種方法。
在使用ADO編程時,首先需建立ADO對象在程序框圖面板中,選擇函數模板的“互連接口”的子模板中選擇“ActiveX”項,再選擇“打開自動化”控件并把它拖放到程序程序框圖面板上,在右擊菜單中點擊“選擇ActiveX 類”,在選擇瀏覽…,彈出“選擇ActiveX 類”對話框,在類型庫Type Library下拉列表中選擇“Microsoft ActiveX Data Objects 2.7 Library Version 2.7”,在下面的對象Objects列表欄中出現這個庫對LabVIEW可用的對象。如圖1所示。Connection對象用來連接和數據庫連接建立,Recordset對象用來處理記錄集。在利用“調用節點”控件來設置連接到數據源、生成SQL命令、關閉連接等相關操作的對象。

圖1 選擇ADO對象并引入程序
LabSQL VIs 按照功能可分為四類:Command VIs、Connection VIs、Recordset VIs、Top Level VIs。Command VIs 的功能是完成一系列的基本ADO 操作;Connection VIs的功能是管理LabVIEW與數據庫之間的連接;Recordset VIs用于對數據庫中的記錄進行各種操作;TopLevel VIs屬于頂層的LabSQL 應用,對前三類LabSQL VIs 某些功能的封裝。例如,SQL Execute.vi可用于直接執行命令。
本實例是實現數據庫查詢的方法。實現數據庫查詢共有兩種方法,一是利用Recordset VIs實現,二是用Connection VIs實現,實例采用第一種方法來實現。使用LabSQL前,需要在Windows操作系統中的ODBC(Open Data Base Connectivity)數據源中創建一個DSN(Data Source Name,數據源名),本實例的數據源是DSN,數據表是測試。LabSQL與數據庫之間的連接就是建立在DSN基礎之上。具體步驟如下,第一步:使用ADO Connection Create. vi創建一個Connetction對象,然后使用ADO Connection Open.vi打開名為測試數據記錄的數據源,與數據庫文件建立連接。第二步:使用ADO Recordset Create. vi創建一個數據記錄對象,然后使用ADO Recordset open.vi打開一個記錄對象,使用SQL命令“SELECT*FROM 測試 where”結合檢索內容實現數據庫數據檢索。第三步:使用ADO SQL Fetch.vi把用戶條件檢索的結果以表格的形式顯示出來。第四步:使用ADO Recordset Close.vi和ADO Connection Close.vi斷開與數據庫的連接,完成按條件查詢功能。如圖2是數據庫查詢程序框圖和圖3是數據庫查詢前面板。

圖2 數據查詢程序框圖

圖3 數據查詢前面板圖
綜上所述,使用LabVIEW訪問數據庫的基本步驟都是相同的,都要經過連接數據庫、執行操作、斷開連接這三個步驟。使用ADO主要優點是易于使用,但需要用戶對Microsoft ADO以及SQL語言有較深的了解。使用LabSQL不用精通ActiveX技術和SQL語言,操作簡介,容易理解,但它對ADO的所有功能未進行完全封裝,功能上有局限性。在實際應用中,用戶究竟采用哪種方法要從項目難易程度、自身編程水平和技術經濟等方面綜合考慮。
[1]劉君華.基于LabView的虛擬儀器設計.電子工業出版社[M].2003
[2]NI Corp.LabView User Manual [M].USA.1998
[3]楊樂平,李海濤,趙勇,楊磊.LabVIEW高級程序設計.北京:清華大學出版社.2003.2
[4]雷振.LabVIEW 7 Express實用技術教程.北京:中國鐵道出版社.2004. 250-251
[5]戴鵬飛,王勝開,等.測試工程與LabVIEW 應用.電子工業出版社[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
地址:云南省昭通市昭通師范高等專科學校。