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