■ 張代宏/軍藍科技集團總公司
隨著測控技術的應用與發展,虛擬儀器技術以其開放、便捷、靈活的設計模式深受開發者青睞。用戶可以自由設計計算機軟件、硬件,通過相應功能模塊的補充,就可以方便地對其進行維護、擴展、升級。
LabVIEW是由NI(National Instruments)公司開發的用于開發虛擬儀器系統的一種簡單有效的工具,是一種可視化的圖形語言平臺,具有圖形化、結構化、層次化、模塊化特點,廣泛應用于測試系統的開發、應用中[1]。
在測試系統開發過程中,往往需要進行數據的讀寫操作,即與數據庫進行交互。常用的方法有四種。
1)利用LabVIEW的ActiveX功能,調用Microsoft ADO控件,利用SQL語言實現數據訪問。這種方法需要系統掌握SQL語言,開發者需具備較高的數據庫開發技能。
2)利用其他語言如Visual C++編寫DULL程序訪問數據庫,再利用Lab-VIEW所帶的 DULL接口訪問該程序。該方法工作量太大。
3)利用NI公司的附加工具包Lab-VIEW SQL Toolkit進行數據庫訪問。但是這種工具包比較昂貴。
4)利用LabSQL數據庫工具包進行訪問,簡單方便。
LabVIEW結構化查詢語言LabSQL(LabVIEW Structured Query Language)是一個源代碼完全公開的LabVIEW數據庫訪問工具包[2]。LabSQL將底層ADO(ActiveX Data Object)及SQL操作封裝成幾個易于操作的子VI,直接調用這些子VI,就可以實現LabVIEW對數據庫的訪問。利用LabSQL幾乎可以訪問任何類型的數據庫,執行各種查詢,對記錄進行各種操作。其優點是易于理解、操作簡單,不熟悉SQL語言的用戶也可以很容易地使用。只需進行簡單的編程,就可在LabVIEW中實現數據庫訪問。
首先將LabSQL.zip解壓,生成LabSQL文件夾,將解壓的LabSQL文件夾放入user.lib文件夾中,再次運行時,LabVIEW的功能模塊就自動加載LabSQL。圖1所示為LabSQL ADO函數選板。
選用Microsoft公司整合在Office辦公軟件中的Access數據庫軟件。Access數據庫具有通用性強、儲存檢索數據快、功能強大、操作方便等優點,與LabSQL有很好的兼容性,且能完全滿足系統的需求[3]。
LabSQL與數據庫進行通信時,首先應在操作系統的ODBC數據源中創建一個數據源,并設置數據源驅動。實現步驟如下:
第一步,用Access數據庫管理軟件新建一個數據庫——我的數據庫.mdb。
第二步,雙擊Windows控制面板“管理工具”中的“數據源(ODBC)”,彈出ODBC數據源管理器,如圖2所示。
第三步,在“系統DSN”選項卡中單擊添加按鈕,選擇數據源驅動。數據源驅動選擇對話框如圖3所示。選擇Microsoft Access Driver(*.mdb)。
第四步,選擇數據源驅動后,彈出ODBC Microsoft Access安裝對話框。在該對話框中設置數據源名為myDB,在數據庫欄中單擊選擇按鈕選擇第一步創建好的數據庫“我的數據庫.mdb”,單擊確定后完成數據源的設置。ODBC Microsoft Access安裝對話框如圖4所示。完成數據源的建立后,就可以利用LabSQL對數據庫進行操作。

圖1 LabSQL ADO函數選板

圖2 ODBC數據源管理器

圖3 數據源驅動選擇對話框

圖4 ODBC Microsoft Access 安裝對話框

圖5 用戶信息E-R模型圖

圖6 用戶密碼登錄程序設計流程圖
用戶密碼登錄程序的用戶信息采用Access數據庫進行管理,并利用LabSQL進行數據庫訪問。用戶信息數據包括用戶名、密碼、權限、最后登錄時間、登錄次數。為此,可以建立一張用戶信息表進行管理。用戶信息的實體—聯系E-R模型(Entity-Relationship)如圖5所示。
用戶密碼登錄程序設計流程如圖6所示。當用戶輸入用戶名和密碼后,如果是管理員,則顯示“進入系統”“用戶管理”“修改密碼”“退出系統”四個按鈕。點擊“用戶管理”則彈出當前用戶信息框,可以進行增加用戶、刪除用戶和編輯用戶操作;點擊“修改密碼”則彈出密碼修改對話框,修改完畢后會給出修改成功與否的提示。若是測試員登錄系統,則只顯示“進入系統”“修改密碼”“退出系統”三個按鈕,即測試員不能進行用戶管理。
采用順序結構與事件結構相結合的方法進行用戶密碼登錄模塊的程序設計。順序結構用于初始化操作,事件結構用于處理用戶登錄、用戶管理、修改密碼等操作。以其中的讀取信息子VI和增加用戶子VI為例對使用LabSQL訪問數據庫方法進行介紹。
讀取信息子VI用于從數據庫中讀取最新的用戶信息,其程序框圖如圖7所示。
首先通過ADO Connection Create.vi(建立連接子VI)與ADO建立連接,然后通過ADO Connection Open.vi(打開數據庫子VI)打開數據源,數據源由ConnectionString指定,在指定數庫子VI中默認的是用戶數據.mdb,根據需要可更改所需數據庫的路徑。打開數據源后,通過SQL Execute.vi(執行子VI)中的Command Text執行SQL語句。對數據庫的操作完成后,用ADO Connection Close.vi(關閉子VI)關閉連接。
讀取信息子VI只是用來讀取相關信息,使用LabSQL還可以對數據庫進行添加、刪除、修改等。下面通過用戶管理中的增加用戶子VI來進一步說明向數據庫添加信息的使用方法。

圖7 讀取信息子VI程序框圖

圖8 增加用戶子VI程序框圖
當需要增加用戶時,點擊“增加用戶”按鈕則彈出對話框。設置新的用戶名為“測試員7”、新密碼為“7”、權限為“測試員”,點擊“確定”按鈕完成用戶添加。增加用戶子VI程序框圖如圖8所示。與讀取信息子VI執行的基本過程一樣,該程序也包含了ADO Connection Create.vi、ADO Connection Open.vi、SQL Execute.vi和 ADO Connection Close.vi。不同的是在3號SQL Execute.vi中Command Text設置的SQL語句為“INSERT INTO用戶(用戶,密碼,權限,最后登錄時間,登錄次數)VALUES(‘測試員7’,‘7’,‘測試員’,‘×××× ’,‘0’)”。其中××××為當前時間,由“當前時間”.vi獲得。程序運行完成后,新用戶信息就添加到數據庫中。
實踐證明,利用LabSQL數據庫工具包進行數據庫訪問,實現過程易于理解、操作簡單、開發時間短,不用掌握SQL等大型數據庫開發語言,特別適用于的廣大測試開發人員。