LabVIEW 中利用LabSQL 訪問數據庫
虛擬儀器VI(virtual instruments)是National Instruments公司在其產品LabVIEW中首先提出的創新概念。隨著現代測試技術與儀器技術的發展,目前虛擬儀器概念已經發展成為一種創新的儀器設計思想,成為設計復雜測試系統和測試儀器的主要方法和手段。同時LabVIEW也以成為測試與測量領域的工業標準應用編程軟件。
但由于LabVIEW本身并不具備數據庫訪問功能,因此以LabVIEW編制的虛擬儀器系統需要其它輔助的方法來進行數據庫訪問。
1 LabVIEW 中與數據庫接口的方法 在基于數據庫的虛擬儀器測量測試系統中,很重要的一部分工作是對實時采集地的數據進行顯示、查詢、統計、生成報表分析等。這其中涉及的最主要的任務就是對數據的讀取和寫入,即與數據庫系統進行交互。據筆者所知,在LabVIEW 編程環境下,通常通過以下幾種方法來完成與數據庫的接口。
利用NI 公司的附加工具包LabVIEW SQL Toolkit 進行數據庫訪問。但是這種工具包比較昂貴,對于很多LabVIEW 用戶來講,這個價格是不可能承受的。
利用其他語言如Visual C++編寫DULL 程序訪問數據庫,再利用LabVIEW 所帶的DULL 接口訪問該程序,這樣可以實現間接訪問數據庫。但這樣工作量太大。
利用LabVIEW 的ActiveX 功能,調用Microsoft ADO 控件,利用SQL 語言實現數據庫訪問。利用這種方式進行數據庫訪問需要用戶對Microsoft ADO 控件以及SQL語言有較深的了解,并且需要從底層進行復雜的編程才能實現。這對于大多數用戶來講也是不現實的。
這幾種方法雖然都可以完成對數據庫的訪問,但各有缺點不能滿足系統對數據庫實時訪問的要求。本文提出通過LabVIEW 用戶開發的免費LabVIEW 數據庫訪問的工具包LabSQL來解決以上存在的問題。
2 數據庫訪問的工具包LabSQL 簡介 LabSQL 是一個免費的、多數據庫、跨平臺的LabVIEW 數據庫訪問工具包。目前的版本是LabSQL Release 1.1,LabSQL 支持Windows 操作系統中任何基于OBDC 的數據庫,包括Acess,SQL Server,Orcale,Pervasive,Sybase 等。LabSQL 是利用Microsoft ADO 以及SQL 語言來完成數據庫訪問,將復雜的底層ADO 及SQL 操作封裝成一系列的LabSQL VIs。利用LabSQL 幾乎可以訪問任何類型地數據庫,執行各種查詢,對記錄進行各種操作。它的優點是易于理解,操作簡單,不熟悉SQL 語言的用戶也可以很容易地使用。只需進行簡單地編程,就可在LabVIEW 中實現數據庫訪問。它還有一個最大的優點是源代碼開放,并且是全面免費的。(注:LabSQL 的下載網址http://jeffreytravis.com)
Microsoft ADO 簡介:Microsoft AciveX Data Objects(ADO)是微軟最新的數據庫訪問技術,可以用于編寫通過OLE DB 提供者對在數據庫服務器中的數據進行訪問和操作的應用程序。OLE DB 是一個底層的數據訪問接口,用它可以訪問各種數據源,包括傳統的關系型數據庫以及電子郵件系統和自定義的商業對象。ADO 為用戶提供了一個OLE DB 的Automation 封裝接口。如同不同的數據庫系統需要它們自己的ODBC 驅動程序一樣,不同的數據源要求它們自己的OLE DB 提供者(OLE DBprovider)。
SQL 作為關系型數據庫中的一種通用的結構化查詢語言,它的主要功能就是同各種數據庫建立聯系,進行溝通。SQL 語句可以用來執行各種各樣的操作,例如更新數據庫中的數據,從數據庫中提取數據等。目前絕大多數的關系型數據庫管理系統,如Orcale,Sybase,Microsoft SQL Server, Access 等都采用了SQL 語言表標準。
3 LabVIEW 中對LabSQL 的使用3.1 LabVIEW 中加入LabSQL 在LabVIEW 安裝目錄中的user.lib 文件夾中新建一個名為LabSQL 的文件夾,并將下載得到的LabSQL.zip 壓縮文件中所有文件解壓到這個文件夾中。解壓縮后的文件包括LabSQLADO functions 和Examples 兩個文件夾,以及ADO210.CHM 和README_FIRST.txt 兩個文件。再次運行時,LabVIEW 的功能模塊就會自動加載LabSQL。3.2 LabSQL 的配置
LabSQL 與數據庫之間是通過ODBC 連接,用戶需要在ODBC 中指定數據源名稱和驅動程序。因此在使用LabSQL之前,首先需要在Windows 操作系統中的ODBC 數據源中創建一個DSN(data source name,數據源名)。LabSQL 與數據庫之間的連接就是建立在DSN 基礎之上的。其連接流程如圖2 所示。
3.3 LabSQL VIs 分類LabSQL VIs 按照功能可分為四類:Command VIs;Connection VIs;Recordset VIs;Top Level VIs。Command VIs 的功能是完成一系列的基本ADO 操作,例如,創建或刪除一個Command,對數據庫中的某一個參數進行讀或寫等。Connection VIs 的功能是管理LabVIEW 與數據庫之間的連接。Recordset VIs 用于對數據庫中的記錄進行各種操作,例如,創建或刪除一條記錄,對記錄中的某一條目進行讀或寫等。Top Level VIs 屬于頂層的LabSQL 應用,對前三類LabSQL VIs 某些功能的封裝,例如,SQL Execute.VIs 可用于直接執行SQL 命令。
3.4 利用LabSQL 開發的基本步驟
利用LabSQL 在數據庫操作中可實現應用程序與數據庫之間的數據交互傳遞。一般的簡單操作步驟如圖3 所示。
4 LabSQL 應用實例
本應用實例是基于VI 的隨動測試系統,該測試系統需要對事先存儲的各測試點的基本資料,標準值、上下限值進行讀取,然后與采集的數據值進行計算、判斷,并進行狀態記錄存儲和管理。其數據庫采用的是Microsoft Access 系統,它的使用和維護較簡單,并且能夠滿足本系統的需要。限于篇幅,本文只對打開數據庫、查詢指定的記錄的字段值和向數據庫添加、刪除、修改記錄的實現方法作一下介紹,以起到拋磚引玉的作用。圖四即為筆者編寫的對數據庫進行簡單操作的框圖。
具體步驟如下:第一步:首先通過ADOCreate.vi 創建一個Connection對象,然后利用ADOConnection Open.vi 建立與數據庫的連接,數據庫由字符串ConnectionString“DSN=myDB”。(myDB 是一個在Windows ODBC 數據源中創建的一個DSN,并與想要連接的數據庫相連接。第二步:利用ADO RecordsetCreate.vi 創建一個Recordset 對象,然后利用ADO Recordset Open.vi 打開Recordset 對象,并同時利用SQL 查詢命令獲得數據庫表中的全部或部分記錄。第三步:通過功能選擇按鈕來選擇控制對數據庫的操作(查詢、添加、刪除、修改)。第四步:利用ADORecordset Close.vi 和ADO Connection Close.vi 關閉與數據庫之間的連接。 以上所舉的例子只是對數據庫的基本操作,如果綜合利用LabSQL 的四類VIs,就可以實現復雜的數據庫操作。另外注意Microsoft ADO 控件具有遠程數據庫訪問的功能,但是LabSQL 并沒有開發這一功能。
5 小結
實踐證明,在LabVIEW 利用LabSQL 數據庫訪問工具包實現對數據庫的訪問,比其它方式操作更簡潔,更容易理解,不用精通ActiveX 技術和SQL 語言。充分利用了現有的資源,就可以數據庫的實時操作,應該是一個值得學習和推廣的方法。
-
數據
+關注
關注
8文章
6909瀏覽量
88850 -
數據庫
+關注
關注
7文章
3767瀏覽量
64283
原文標題:輕松教你搞定數據庫應用
文章出處:【微信號:gh_15eff9efd85b,微信公眾號:漫談labview學習】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論