虛擬設備號的問題則比較復雜
因為sysdevices系統表中沒有
虛擬設備號
這樣一個字段
因此
必須另想辦法
對SQLServer的系統存儲過程sp_helpdevice進行分析之後我們發現虛擬設備號是隱藏在sysdevices系統表的low字段中的借助另一個系統表spt_values可以找到每個設備的虛擬設備號這樣我們只需要在一個循環中找一下某個設備號是否存在於sysdevices中就可以確定我們現在可用的虛擬設備號
至於數據庫設備的大小我們不妨設得大一些或者讓用戶指定一下也可以
.創建數據庫的語句參數
創建數據庫的語句如下
CREATEDATABASEdatabase_name[ON{DEFAULT|database_device}[=size][database_device[=size]]]
[LOGONdatabase_device[=size][database_device[=size]]][FORLOAD]
其中大部分參數都是可選的我們只需要指定一個設備名及數據庫的大小即可而數據庫名設備名大小在創建設備的時候已經確定好了所以這個語句的參數不存在問題
三具體實現
使用普通的應用開發工具Visual Basic我們就可以實現一個定制的數據庫管理程序
為了實現與數據庫服務器的連接我們必須選擇一種數據庫訪問接口雖然從VB訪問SQLServer有很多接口可供選擇但微軟最新的數據庫訪問接口ADO(ActiveDataObjects)無疑是最有前途的因為它為基於浏覽器的數據庫應用系統的實現提供了可能性
以下是一些用於數據庫及其設備管理的常用函數
.取當前的工作數據庫
由於管理任務一般都必須在master庫中完成因此在執行管理任務之前最好保存當前工作庫以便完成任務之後再切換回去
PublicFunctionSQLGetCurrentDatabaseName(CnAsADODBConnection) AsStringDimsSQLAsStringDimRSAsNewADODBRecordset
OnErrorGoToerrSQLGetCurrentDatabaseNamesSQL=selectCurrentDB=DB_NAME()RSOpensSQL
CnSQLGetCurrentDatabaseName=Trim$(RS!CurrentDB) RSCloseExitFunctionerrSQLGetCurrentDatabaseName:SQLGetCurrentDatabaseName=EndFunction
[] [] []
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22490.html