(1.廣東工業(yè)大學(xué)信息工程學(xué)院,廣東廣州 510640;
2.廣東女 子職業(yè)技術(shù)學(xué)院,廣東廣州 511450)
摘 要:介紹用LabVIEW SQLToolkit進(jìn)行數(shù)據(jù)庫(kù)訪問(wèn)的方法 。利用該工具包,用戶可以創(chuàng)建一個(gè)使用數(shù)據(jù)庫(kù)來(lái)管理復(fù)雜任務(wù)、存儲(chǔ)測(cè)試數(shù)據(jù)并且能夠總 結(jié)測(cè)試結(jié)果的自動(dòng)化測(cè)試系統(tǒng)。具體內(nèi)容包括用LabVIEW將數(shù)據(jù)文件導(dǎo)入數(shù)據(jù)庫(kù)和將數(shù)據(jù)庫(kù) 中的數(shù)據(jù)文件導(dǎo)出到LabVIEW程序中。
關(guān)鍵詞:自動(dòng)測(cè)試系統(tǒng);虛擬儀器;數(shù)據(jù)庫(kù)
在虛擬儀器開(kāi)發(fā)中必須解決專業(yè)軟件和數(shù)據(jù)庫(kù)之間的數(shù)據(jù)傳輸和調(diào)用問(wèn)題,而LabVIEW 現(xiàn)有的版本中沒(méi)有提供與通用數(shù)據(jù)庫(kù)直接接口的方法。這一問(wèn)題可以采用以下幾種方法解決 。
1.購(gòu)買NI公司的LabVIEW AddOns中的數(shù)據(jù)庫(kù)接口工具包LabVIEW SQLToolkit進(jìn)行 數(shù)據(jù)庫(kù)訪問(wèn)。它是一個(gè)能快速連接本地和遠(yuǎn)程數(shù)據(jù)庫(kù),不使用SQL語(yǔ)言就能完成一系列數(shù)據(jù) 庫(kù)操作的工具包,它支持當(dāng)前流行數(shù)據(jù)庫(kù),包括Microsoft Access,MicrosoftSQL Sever以 及Oracle等。它的優(yōu)點(diǎn)是易于理解,操作簡(jiǎn)單,用戶可以不學(xué)習(xí)SQL語(yǔ)法。本論文采用此工 具包對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。 2.利用其他語(yǔ)言如Visual C++編寫(xiě)DLL程序訪問(wèn)數(shù)據(jù)庫(kù),利用LabVIEW 所帶的DLL接口訪問(wèn)該程序,可以實(shí)現(xiàn)間接的訪問(wèn)數(shù)據(jù)庫(kù)。 3.利用中間文件存取數(shù)據(jù),先將數(shù)據(jù)存入文件之中,在一定的時(shí)刻或者是需要的時(shí) 候再將數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫(kù)之中。 4.利用LabVIEW的ActiveX功能,調(diào)用Microsoft ADO控件,利用SQL語(yǔ)言實(shí)現(xiàn)數(shù)據(jù)庫(kù)訪問(wèn)。
1LabVIEW SQLToolkit簡(jiǎn)介
LabVIEW SQLToolkit(其又被稱作為L(zhǎng)abVIEW Database Connectivity Toolset)是用于數(shù)據(jù) 庫(kù)訪問(wèn)的附加工具包,工具包集成了一系列的高級(jí)功能模塊,這些模塊封裝了大多數(shù)的數(shù)據(jù) 庫(kù)操作和一些高級(jí)的數(shù)據(jù)庫(kù)訪問(wèn)功能。其主要的功能如下:
1.支持Microsoft ActiveX Data Object(ADO)所支持的所有的數(shù)據(jù)庫(kù)引擎; 2.支持所有與ODBC或OLE DB兼容的數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序; 3.具有高度的可移植性,在任何情況下,用戶通過(guò)改變DB Tools Open Connection VI的輸 入?yún)?shù)Connection String就可以更換數(shù)據(jù)庫(kù);4.可以將數(shù)據(jù)庫(kù)中Column Values的數(shù)據(jù)類型轉(zhuǎn)換為標(biāo)準(zhǔn)LabVIEW Database Connectivity T oolset的數(shù)據(jù)類型,這進(jìn)一步增強(qiáng)了它的可移植性; 5.與SQL兼容; 6.不使用SQL語(yǔ)句就可以實(shí)現(xiàn)數(shù)據(jù)庫(kù)記錄的查詢、添加、修改以及刪除等操作; 7.用戶可以完全不需要學(xué)習(xí)SQL語(yǔ)法。
用戶可以使用LabVIEW SQLToolkit在LabVIEW中支持ODBC的本地或遠(yuǎn)程數(shù)據(jù)庫(kù),例如Microso ft Access,Microsoft SQL Sever,Sybase SQL Server以及Oracle等。在LabVIEW中使用La bVIEW SQLToolkit訪問(wèn)數(shù)據(jù)庫(kù)時(shí),其結(jié)構(gòu)層次如圖1所示。
2ODBC簡(jiǎn)介
ODBC是微軟公司開(kāi)放服務(wù)體系結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中有關(guān)數(shù) 據(jù)庫(kù)的一個(gè)組成部分,它建立一組規(guī)范,并提供一組對(duì)數(shù)據(jù)庫(kù) 訪問(wèn)的API(應(yīng)用程序編程 接口)。這些API利用SQL來(lái)完成其大部分任務(wù)。ODBC本身也提供了對(duì)SQL語(yǔ)言的支持,用戶可 以直接將SQL語(yǔ)句送給ODBC。
一個(gè)基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫(kù)的操作不依賴于任何DBMS(數(shù)據(jù)庫(kù)管理系統(tǒng)),所有的數(shù)據(jù) 庫(kù)操作由對(duì)應(yīng)的DBMS的ODBC驅(qū)動(dòng)程序完成。不論是FoxPro、Access還是Oracle數(shù)據(jù)庫(kù),均可 用ODBC API進(jìn)行訪問(wèn)。由此可見(jiàn),ODBC的最大優(yōu)點(diǎn)是支持對(duì)異構(gòu)數(shù)據(jù)庫(kù)的訪問(wèn),能以統(tǒng)一方 式處理所有數(shù)據(jù)庫(kù)。
3在LabVIEW中訪問(wèn)數(shù)據(jù)庫(kù)的開(kāi)發(fā)實(shí)例
3.1LabVIEW SQLToolkit的配置
在使用LabVIEW SQLToolkit工具包之前,首先需要在Windows操作系統(tǒng)中的ODBC數(shù)據(jù)源中創(chuàng) 建一個(gè)DSN(data source name,數(shù)據(jù)名)。LabVIEW SQLToolkit與數(shù)據(jù)庫(kù)之間的連接就是建 立在DSN基礎(chǔ)上的。
DSN的創(chuàng)建步驟如下:
第一步:在Windows操作系統(tǒng)的控制面板中選擇“數(shù)據(jù)源(ODBC)”,彈出ODBC數(shù)據(jù)源管理器 。
第二步:?jiǎn)螕簟跋到y(tǒng)DSN”選項(xiàng)卡中的“添加…”。
第三步:在隨后出現(xiàn)的“創(chuàng)建新數(shù)據(jù)源”對(duì)話框驅(qū)動(dòng)程序列表中選“Microsoft Access Dri ver(*.mdb)”,并單擊“完成”按鈕。
第四步:在隨后出現(xiàn)的對(duì)話框中的“數(shù)據(jù)源名”一欄中創(chuàng)建DSN的名稱,例如本系統(tǒng)使用的n iDB;并利用“選擇”按鈕選擇需要利用LabVIEW SQLToolkit訪問(wèn)的數(shù)據(jù)庫(kù),如niDB.mdb, 然后單擊“確定”按鈕。
這樣就完成了DSN的創(chuàng)建。從此以后,LabVIEW SQLToolkit就可以利用這個(gè)DSN訪問(wèn)與之相關(guān) 聯(lián)的數(shù)據(jù)庫(kù)了。
3.2創(chuàng)建數(shù)據(jù)庫(kù)表和添加數(shù)據(jù)
建表和添加數(shù)據(jù)操作是數(shù)據(jù)庫(kù)最基本的功能之一。本例首先使用DB Tools Open Connection 打開(kāi)數(shù)據(jù)庫(kù)連接,使用DB Tools List Tables和DB Tools Create TableTools判斷指定的數(shù) 據(jù)庫(kù)表是否存在,并據(jù)此建立數(shù)據(jù)庫(kù)表;然后通過(guò)帶參數(shù)技術(shù)的DB Tools Create Paramete rized Quely向數(shù)據(jù)庫(kù)添加數(shù)據(jù),在其中還利用DB Tools Set Parameter Value對(duì)其進(jìn)行參 數(shù)的設(shè)定,使用這種技術(shù)的插入操作其效率高于使用DB Tools Insert Data;最后使用DB T ools Execute Query執(zhí)行指定查詢,并使用DB Tools Free Object和DB Tools Close Conne ction釋放資源及斷開(kāi)連接。具體的框圖程序如圖2所示。
3.3進(jìn)行數(shù)據(jù)查詢
在查詢操作中,其關(guān)鍵是利用DB Tools Fetch Element Data獲取紀(jì)錄,以及利用DB Tools Get Properties判斷索引是否有效。其框圖程序如圖3所示。
4結(jié)束語(yǔ)
LabVIEW是開(kāi)發(fā)虛擬儀器應(yīng)用軟件的高效率工具,利用專門的數(shù)據(jù)庫(kù)接口工具包LabVIEW SQL Toolkit可以方便的實(shí)現(xiàn)LabVIEW應(yīng)用程序?qū)?shù)據(jù)庫(kù)的存取。開(kāi)發(fā)人員可以根據(jù)具體應(yīng)用的不 同要求實(shí)現(xiàn)存儲(chǔ)和調(diào)用要測(cè)試的對(duì)象的歷史數(shù)據(jù)和初始狀態(tài),建立被測(cè)試對(duì)象的數(shù)據(jù)查詢系 統(tǒng),動(dòng)態(tài)的修改數(shù)據(jù)等功能。本系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)表明,通過(guò)LabVIEW與數(shù)據(jù)庫(kù)Microsoft A ccess 2000之間進(jìn)行動(dòng)態(tài)數(shù)據(jù)交換,使得由LabVIEW組成的新一代軟件測(cè)試系統(tǒng)具有了許多 強(qiáng)大的功能,在組建簡(jiǎn)單的或是復(fù)雜的測(cè)試系統(tǒng)中有廣泛的應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]NI.Database Connectivity Toolset User Manual[Z].2001.
[2]汪銳,汪仁煌.在LabVIEW中使用動(dòng)態(tài)連接庫(kù)與通用數(shù)據(jù)庫(kù)接口[J].電訊技 術(shù),2000,(3):63.
[3]李鷹,黃海榮,田作華.一種LabVIEW和數(shù)據(jù)庫(kù)的接口設(shè) 計(jì)方法[J].計(jì)算機(jī) 工程,2000,(7):98-99.
[4]黎洪生,李超,劉俊剛.LabVIEW中利用ADO訪問(wèn)數(shù)據(jù)庫(kù)的方法[J].計(jì)算機(jī)系 統(tǒng)應(yīng)用,2001,(11):71-73.
[5]楊樂(lè)平,李海濤,趙勇,等.LabVIEW高級(jí)程序設(shè)計(jì)[M].北京:清華大學(xué)出 版社,2003.
[6]馬安鵬.Visual C++6程序設(shè)計(jì)導(dǎo)學(xué)[M].北京:清華大學(xué)出版社, 2002.
摘自 儀表技術(shù)