述說ADO參數(shù)問題相關(guān)解讀
ADO參數(shù)為研發(fā)數(shù)據(jù)庫的技術(shù)人員對Team System承諾,提供相關(guān)工具,這樣可以為整個軟件開發(fā)周期少了不少彎路,降低工作的復(fù)雜性,我認(rèn)為Vs.Net 2010只會使我們的工作更簡單和更輕松。
一般都依賴于已經(jīng)存在的用戶數(shù)據(jù)庫。創(chuàng)建數(shù)據(jù)庫的工作當(dāng)然可以用SQL Server提供的SQL EnterpriseManager工具來完成,但是,如果能夠提供一種定制的數(shù)據(jù)庫管理工具,專門管理應(yīng)用系統(tǒng)需要的數(shù)據(jù)庫及其設(shè)備,ADO參數(shù)對用戶來說無疑更加理想。
其中NAME和SIZE這兩個參數(shù)都很容易得到,麻煩的是物理名PHYSNAME和虛擬設(shè)備號VDEVNO這兩個ADO參數(shù)。前者要求是一個服務(wù)器上的物理文件全路徑名;后者要求在1~255之間找一個沒有被別的設(shè)備占用的號碼。而在編寫數(shù)據(jù)庫管理程序時,用戶的服務(wù)器上有哪些設(shè)備號已經(jīng)被占用,SQLServer裝在哪個驅(qū)動器上,都是無法預(yù)料的。
雖然,使用SQLServer的管理工具SQLEnterpriseManager,可以非常方便地創(chuàng)建、刪除數(shù)據(jù)庫設(shè)備,或者擴(kuò)大一個已經(jīng)存在的數(shù)據(jù)庫,也可以非常方便地創(chuàng)建、刪除或者修改一個數(shù)據(jù)庫,但是,這個工具仍然要求我們輸入很多不太常用的參數(shù),界面稍顯復(fù)雜,為了實現(xiàn)這樣的目標(biāo),我們必須想辦法解決SQL語句中的參數(shù)設(shè)置問題。
創(chuàng)建設(shè)備的ADO參數(shù)
創(chuàng)建設(shè)備的語句即前面提到的DISKINIT語句,為了簡化問題,我們可以指定與數(shù)據(jù)庫名相同的設(shè)備文件名,并將設(shè)備文件保存在master設(shè)備所在的子目錄中。數(shù)據(jù)庫名是在設(shè)計應(yīng)用程序時已經(jīng)確定;而master設(shè)備所在的子目錄,可以從系統(tǒng)表sysdevices中查詢得到。這樣,設(shè)備文件的物理名參數(shù)就確定下來了,虛擬設(shè)備號的問題則比較復(fù)雜,因為sysdevices系統(tǒng)表中沒有“虛擬設(shè)備號”這樣一個字段,因此,必須另想辦法。#t#
對SQLServer的系統(tǒng)存儲過程sp_helpdevice進(jìn)行分析之后,我們發(fā)現(xiàn),虛擬設(shè)備號是“隱藏”在sysdevices系統(tǒng)表的low字段中的,借助另一個系統(tǒng)表spt_values,可以找到每個設(shè)備的虛擬設(shè)備號。這樣,我們只需要在一個循環(huán)中找一下某個設(shè)備號是否存在于ADO參數(shù)中,就可以確定我們現(xiàn)在可用的虛擬設(shè)備號。至于數(shù)據(jù)庫設(shè)備的大小,我們不妨設(shè)得大一些,或者讓用戶指定一下也可以。