微软公司的sqlserver是目前小型网络中常用的数据库管理系统之一.面向这种网络数据库的应用程序也在日益增多,这种网络数据库应用系统的正常运行,一般都依赖于已经存在的用户数据库.创建数据库的工作当然可以用sql server提供的sql enterprisemanager工具来完成,但是,如果能够提供一种定制的数据库管理工具,专门管理应用系统需要的数据库及其设备,对用户来说无疑更加理想. 【程序编程相关:2005年XQuery工业使用现状深度调】
来自豆豆技术网 【推荐阅读:动画启动窗口的类(源码) 】
我们知道,在使用createdatabase语句创建一个数据库之前,必须存在一个有剩余空间的数据库设备,或者事先使用diskinit语句创建一个新设备.但是这些语句含有很多必需的参数,而且如果不使用sqlserver的管理工具,很多参数值往往难以确定. 【扩展信息:调用xaudio.dll解码mp3,ds】
现存问题
以创建数据库设备的diskinit语句为例,这个语句的完整语法如下:
diskinitname=‘logical_name,physname=‘physical_name,vdevno=virtual_device_number,size=number_of_2k_blocks[,vstart=virtual_address]
其中name与size这两个参数都很容易得到,麻烦的是物理名physname与虚拟设备号vdevno这两个参数.前者要求是一个服务器上的物理文件全路径名;后者要求在1~255之间找一个没有被别的设备占用的号码.而在编写数据库管理程序时,用户的服务器上有哪些设备号已经被占用,sqlserver装在哪个驱动器上,都是无法预料的.
虽然,使用sqlserver的管理工具sqlenterprisemanager,可以非常方便地创建.删除数据库设备,或者扩大一个已经存在的数据库,也可以非常方便地创建.删除或者修改一个数据库,但是,这个工具仍然要求我们输入很多不太常用的参数,界面稍显复杂.
所以,理想的情况是:用户只需要按下一个命令按钮,应用程序需要的数据库及其设备都能立即自动地创建好.
解决方案
为了实现这样的目标,我们必须想办法解决sql语句中的参数设置问题.
1.创建设备的语句参数
创建设备的语句即前面提到的diskinit语句.
为了简化问题,我们可以指定与数据库名相同的设备文件名,并将设备文件保存在master设备所在的子目录中.数据库名是在设计应用程序时已经确定;而master设备所在的子目录,可以从系统表sysdevices中查询得到.这样,设备文件的物理名参数就确定下来了.
虚拟设备号的问题则比较复杂,因为sysdevices系统表中没有“虚拟设备号”这样一个字段,因此,必须另想办法.
... 下一页