基于LabWindows/CVI的數據庫編程研究與分析
摘要:在復雜的大型測試系統(tǒng)的軟件開發(fā)中,面對大量數據的存儲、管理和處理。數據庫是測試系統(tǒng)中不可缺少的重要組成部分。開放式數據庫互聯(lián)(ODBC)規(guī)范提供的一組對數據庫訪問的標準API為數據庫的管理和應用程序開發(fā)提供了強大的工具?;诖私榻B了在LabWindows/CVI平臺下,應用ODBC和SQLToolkit工具包與Oracle數據庫交互的過程和程序實例。實踐證明,此方法簡單、可靠,實際開發(fā)中可用性比較強。
在測試系統(tǒng)的應用開發(fā)中,測試數據通常是以文件的方式進行組織管理的。這樣的數據存儲方式有一定的局限性,特別是遠程測試系統(tǒng),對于大量的數據不能及時的反饋。要實現方便靈活的管理和訪問,數據庫是一種必然的選擇。
LabWindows/CVI是一個完全的標準C開發(fā)環(huán)境,用于開發(fā)虛擬儀器應用系統(tǒng)。CVI5.5及以后的版本提供了支持數據庫的sQLTOOLKIT工具包,該工具包提供了豐富的數據庫操作函數,給開發(fā)帶來了方便和快捷。
1基于PCI的數據采集
對于非NI公司的PCI數據采集卡,一般的驅動程序都是以動態(tài)鏈接庫的形式提供的。對于CVI而言,可以直接利用驅動程序的動態(tài)鏈接庫文件實現對采集卡的控制。本文采用中泰PCI-8333數據采集卡進行信號采集、存儲和輸出。PCI-8333數據采集卡具備豐富的采集與控制方法,同時也提供了動態(tài)鏈接庫文件和頭文件。
1.1縮寫采集卡頭文件
雖然廠商提供了頭文件,但是LabWindows/CVI需要用c語言對頭文件進行改寫,參照廠商提供的頭文件,編寫部分方法聲明如下:
注意,頭文件中包含的方法一定要與動態(tài)鏈接庫中的方法—致。編寫后,將該頭文件添加到應用程序中。在程序源文件中聲明頭文件,添加#include“PCI8KP.h”。
1.2產生dll導入庫文件
將采集卡廠商提供的動態(tài)鏈接庫文件加入剄應用程序所在的文件夾中,選擇菜單:Option-GenerateDLLImportLibrary,在彈出的對話框中選擇OK按鈕,會彈出動態(tài)鏈接庫選擇對話框,選擇加入到程序中的動態(tài)鏈接庫后,會在該文件夾下產生導入庫。將該導入庫也加入到當前程序的工程中。
1.3應用動態(tài)鏈接庫
上面的兩個步驟完成后,便可在CVI應用程序中使用該動態(tài)鏈接庫,調用頭文件中已聲明的方法進行數據采集源程序的編寫,實現對效據采集卡的控制。
2ODBC及SQLToolkit工具包
ODBC(OpenDatabaseConnectivity,開放數據庫互連)是Microsoft公司開發(fā)的一套開放數據庫系統(tǒng)應用程序接口規(guī)范,它提供了統(tǒng)一的數據庫應用編程接口(API),為應用程序提供了一套高層調用接口規(guī)范和基于動態(tài)連接庫的運行支持環(huán)境。使用ODBC開發(fā)數據庫應用時,應用程序調用的是標準的ODBC函數和SQL語句,數據庫底層操作由各個數據庫的驅動程序完成。因此應用程序有很好的適應性和可移植性。
LabWindows/CVISQLToolkit是用于CVI數據庫訪問的附加工具包,它集成了一系列的高級功能模塊,這些模塊封裝了大部分的數據庫操作和一些高級數據庫訪問功能。LabWindows/CVISQLToolkit支持主流的數據庫驅動,對于數據庫開發(fā)商及第三方開發(fā)者提供的驅動,LabWindows/CVISQLToolkit也一樣采用標準的ODBC編譯方式,通過這種擴展方式,可以靈活支持任何符合ODBC開發(fā)標準的數據庫系統(tǒng)。
3數據庫操作
Oracle數據庫管理系統(tǒng)是一個以關系型和面向對象為中心管理數據的數據庫管理軟件系統(tǒng)。Orade數據庫有如下幾個強大的特性:支持多用戶、大事務量的事務處理,數據安全性和完整性的有效控制,支持分布式數據處理等。因其在數據安全性與數據完整性控制方面的優(yōu)越性能,以及跨操作系統(tǒng)、跨硬件平臺的數據互操作能力,使得越來越多的用戶將Oracle作為其應用數據的處理系統(tǒng)。
3.1創(chuàng)建數據庫
最后創(chuàng)建數據存儲DATA_ACQUIRE,這里不再列舉數據庫腳本代碼。
3.2創(chuàng)建DSN
在使用工具包之前,首先需要在操作系統(tǒng)中的ODBC數據源中創(chuàng)建一個DSN,工具包與數據庫的鏈接就是建立在DSN基礎上的。創(chuàng)建DSN的步驟如下:
(1)在操作系統(tǒng)控制面板中選擇“數據源(ODBC)”。
(2)選擇“系統(tǒng)DSN選項卡”添加按鈕。
(3)在出現的“創(chuàng)建新數據源”對話框驅動程序列表中選"OracleinOraOb10g_homel”,點擊完成。
(4)配置"OracleODBCDriverConfiguration”,如圖2所示:
這樣就完成了DSN的創(chuàng)建,從此以后,工具包就可以利用這個DSN訪問與之相關聯(lián)的數據庫了。
3.3采集數據插入數據庫
3.4顯示結果
檢索數據庫中所有的數據,提取DATA字段,將數據組合成數組,通過Graph控件把數據顯示出來。也可以按照時間條件檢索數據庫,Graph控件中將會顯示符合查詢條件的數據。
4結論
CVI和數據庫是開發(fā)虛擬儀器應用軟件的不可缺少的組成部分,利用專門的數據庫接口工具包可以方便地實現CVI應用程序與數據庫的鏈接。本系統(tǒng)的實現表明,通過CVI與Oracle數據庫質檢進行數據交互,使得測試系統(tǒng)有了強大的功能,在組建復雜的測試系統(tǒng)中具有廣泛的應用價值。