基于Labwindows/CVI的測試系統(tǒng)數(shù)據(jù)庫設(shè)計
掃描二維碼
隨時隨地手機(jī)看文章
0 引言
數(shù)據(jù)庫實際上就是存儲數(shù)據(jù)的“倉庫”。但數(shù)據(jù)不是存放在容器或空間中,而是存放在計算機(jī)的外存儲器上(如磁盤),并且是有組織的存放。數(shù)據(jù)的管理和利用通常是通過計算機(jī)的數(shù)據(jù)管理軟件——數(shù)據(jù)庫管理系統(tǒng)來完成的。因此,數(shù)據(jù)庫不單是指存有數(shù)據(jù)的計算機(jī)外存,而是指存放在外存上的數(shù)據(jù)集合及其管理軟件的總和,通常稱為數(shù)據(jù)庫系統(tǒng)。在以LabWindows/CVI為虛擬儀器軟件開發(fā)環(huán)境進(jìn)行自動測試系統(tǒng)的開發(fā)中,需要大量的數(shù)據(jù)處理。以前對數(shù)據(jù)的處理基本都是通過文件的形式,但是文件形式的數(shù)據(jù)不易管理和查詢,因此迫切需要將測試結(jié)果以及配置信息和數(shù)據(jù)存放在數(shù)據(jù)庫中。自從NI公司開發(fā)出數(shù)據(jù)庫系統(tǒng)應(yīng)用軟件工具包后,就可以在Lab-Windows/CVI環(huán)境下方便地對數(shù)據(jù)庫進(jìn)行讀寫開發(fā)。
1 SQL簡介
SQL是Structure Query Language的縮寫,意思為結(jié)構(gòu)化查詢語言。利用SQL可實現(xiàn)對數(shù)據(jù)庫的各種交互操作。根據(jù)美國國家標(biāo)準(zhǔn)研究所ANSI( American National Standards Institute)的聲明,SQL是關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的標(biāo)準(zhǔn)語言。利用相應(yīng)的SQL語句可實現(xiàn)數(shù)據(jù)庫的數(shù)據(jù)更新、數(shù)據(jù)獲取等功能。
以關(guān)系為代表的數(shù)據(jù)庫產(chǎn)品已走向成熟。小型數(shù)據(jù)庫(如FoxPro,Access,Paradox等)百花爭艷,大型數(shù)據(jù)庫(如Oracle,Sybace,Informix)產(chǎn)品分割天下。面對這樣的局面,人們感到既喜又憂:喜的是用戶可以有充分選擇的自由;憂的是各數(shù)據(jù)庫產(chǎn)品之間難以互通,給應(yīng)用程序的移植帶來困難。于是人們就希望有一個為各廠家所支持的、較一致的應(yīng)用開發(fā)界面,以使應(yīng)用程序能夠獨立于數(shù)據(jù)庫產(chǎn)品。ODBC(Open DataBaseConnectivity,開放數(shù)據(jù)庫互連)正是迎合人們的這一需要而提出的。ODBC實際上是一個數(shù)據(jù)庫訪問庫。ODBC的獨特之處在于可以避免應(yīng)用程序隨數(shù)據(jù)庫的改變而改變,即具有良好的數(shù)據(jù)庫獨立性。通過ODBC可以使數(shù)據(jù)庫的更改變得非常容易,即對應(yīng)用程序來說只需改換一下驅(qū)動程序即可。如果將非過程的結(jié)構(gòu)性查詢語言SQL的開放性O(shè)DBC技術(shù)應(yīng)用于測試系統(tǒng)軟件中,則可使測試系統(tǒng)具有很強(qiáng)的靈活性和可重復(fù)利用性。綜上所述,數(shù)據(jù)庫技術(shù)在自動測試系統(tǒng)中的應(yīng)用將會成為一種趨勢。
一般情況下,數(shù)據(jù)庫都有強(qiáng)大的數(shù)據(jù)存儲和管理能力以及實際的功能需求,因此,我們在很多數(shù)據(jù)處理中都要應(yīng)用數(shù)據(jù)庫技術(shù)。本文采用的LabWindows/CVI SQL工具包符合ODBC標(biāo)準(zhǔn),可作為驅(qū)動,并配合Microsoft Access2000作為數(shù)據(jù)庫進(jìn)行配置,這樣可以很好地實現(xiàn)數(shù)據(jù)庫技術(shù)在一般測試系統(tǒng)中的應(yīng)用,從而大大提高測試系統(tǒng)數(shù)據(jù)的管理效率。
2 測試系統(tǒng)數(shù)據(jù)庫的配置
在測試系統(tǒng)中,數(shù)據(jù)庫中的數(shù)據(jù)表主要由幾大塊組成。首先是測試參數(shù)數(shù)據(jù)的存儲與處理,這一塊是本測試系統(tǒng)數(shù)據(jù)庫設(shè)計的核心,包括實際測試結(jié)果數(shù)據(jù)的存儲。另外就是用戶管理數(shù)據(jù)和被測設(shè)備的基本參數(shù)。為了存儲的方便,應(yīng)當(dāng)精心設(shè)計各個用戶參數(shù)、測試項判據(jù)和測試結(jié)果的數(shù)據(jù)邏輯設(shè)計結(jié)構(gòu)如圖1所示。
本文所用的數(shù)據(jù)庫的配置有以下幾個步驟:
(1)數(shù)據(jù)庫系統(tǒng)的注冊及數(shù)據(jù)源添加開放數(shù)據(jù)庫互連(ODBC)標(biāo)準(zhǔn)取決于訪問每個數(shù)據(jù)庫系統(tǒng)的ODBC驅(qū)動器,配置時必須對任何使用的ODBC驅(qū)動器進(jìn)行注冊。以便在win-dows2000系統(tǒng)的控制面板上的ODBC選項里進(jìn)行配置和添加。
(2)數(shù)據(jù)庫連接
執(zhí)行SQL語句前,必須建立數(shù)據(jù)庫連接。這一步以SQL Toolkit為中介,可以用程序方式來實現(xiàn)連接。
(3)激活SQL連接
事實上,激活SQL連接是進(jìn)行查詢會話的前提,可以采用自動SQL或顯式SQL兩種方式來實現(xiàn)SQL旌接的激活。
(4)處理SQL語句
這是操作數(shù)據(jù)庫的關(guān)鍵。主要是對數(shù)據(jù)庫創(chuàng)建記錄、獲取記錄、更新記錄、刪除記錄等。通過使用SELECT語句可將數(shù)據(jù)表中的字段綁定到程序中的變量上,接著用取值函數(shù)獲取所選記錄。每次調(diào)用取值函數(shù),工具包都會將數(shù)據(jù)庫中的列變量拷貝到程序中綁定的變量上。更新行或創(chuàng)建行時,還可以用綁定的變量,即更新行或創(chuàng)建行時將新值拷貝到綁定的變量并隨后調(diào)用適當(dāng)?shù)暮瘮?shù),然后將程序中的數(shù)據(jù)添加到數(shù)據(jù)庫對應(yīng)的字段。
(5)斷開SQL璉接
SQL操作結(jié)束后,應(yīng)斷開SQL連接,這一步驟在任何方向上取值時都是特別重要的,它可以保證關(guān)閉連接并刪除建立連接時所生成的臨時登記文件。
(6)斷開數(shù)據(jù)庫
全部數(shù)據(jù)庫操作結(jié)束后,應(yīng)確保斷開通過SQL建立的數(shù)據(jù)庫連接已被其他地方不小心修改,同時也可用來釋放系統(tǒng)資源。
3 測試系統(tǒng)數(shù)據(jù)的代碼設(shè)計
現(xiàn)以本測試系統(tǒng)中的用戶管理數(shù)據(jù)的獲取為例,詳細(xì)介紹本系統(tǒng)數(shù)據(jù)庫的設(shè)計方法,其部分配置代碼如下:
//激活SQL連接
hstmt=DBActivateMap(hmap,"Pass-Word");
//操作SQL并使得當(dāng)前各字段分別映射到各相關(guān)變量
resCode=DBFetchRandom(hstmt,userid2+1);
//其他操作
//斷開SQL連接
resCode=DBDeactivateMap Oamap);
//斷開數(shù)據(jù)庫
resCode=DBDisconnect(hdbc);
4 結(jié)束語
本文介紹了基于Labwindows的測試系統(tǒng)軟件數(shù)據(jù)庫的設(shè)計和配置方法。現(xiàn)在,這部分技術(shù)已經(jīng)相當(dāng)成熟,將其運用到虛擬儀器系統(tǒng)中,可以更好的管理系統(tǒng)數(shù)據(jù),提高系統(tǒng)效率。