虚拟设备号的问题则比较复杂
因为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
[] [] []