|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
无论谁倒了对双方阵营的粉丝们也是有害无益。ado|server|sql|数据|数据库 微软公司的SQLServer是今朝小型收集中经常使用的数据库办理体系之一。面向这类收集数据库的使用程序也在日趋增加,这类收集数据库使用体系的一般运转,一样平常都依附于已存在的用户数据库。创立数据库的事情固然能够用SQLServer供应的SQLEnterpriseManager工具来完成,可是,假如可以供应一种定制的数据库办理工具,专门办理使用体系必要的数据库及其设备,对用户来讲无疑加倍幻想。现存成绩
我们晓得,在利用CREATEDATABASE语句创立一个数据库之前,必需存在一个有残剩空间的数据库设备,大概事前利用DISKINIT语句创立一个新设备。可是这些语句含有良多必须的参数,并且假如不利用SQLServer的办理工具,良多参数值常常难以断定。
以创立数据库设备的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体系表中没有“假造设备号”如许一个字段,因而,必需另想举措。
对SQLServer的体系存储历程sp_helpdevice举行剖析以后,我们发明,假造设备号是“埋没”在sysdevices体系表的low字段中的,借助另外一个体系表spt_values,能够找到每一个设备的假造设备号。如许,我们只必要在一个轮回中找一下某个设备号是不是存在于sysdevices中,就能够
断定我们如今可用的假造设备号。
至于数据库设备的巨细,我们无妨设得年夜一些,大概让用户指定一下也能够。
2.创立数据库的语句参数
创立数据库的语句以下:
CREATEDATABASEdatabase_name[ON{DEFAULT|database_device}[=size][,database_device[=size]]...]
[LOGONdatabase_device[=size][,database_device[=size]]...][FORLOAD]
个中,年夜部分参数都是可选的,我们只必要指定一个设备名及数据库的巨细便可,而数据库名、设备名、巨细在创立设备的时分已断定好了,以是,这个语句的参数不存在成绩。
详细完成
利用一般的使用开辟工具VisualBasic,我们就能够完成一个定制的数据库办理程序。
为了完成与数据库服务器的毗连,我们必需选择一种数据库会见接口。固然从VB会见SQLServer
有良多接口可供选择,但微软最新的数据库会见接口ADO(ActiveDataObjects)无疑是最有出路的,由于它为基于扫瞄器的数据库使用体系的完成供应了大概性。
以下是一些用于数据库及其设备办理的经常使用函数。
1.取以后的事情数据库----因为办理义务一样平常都必需在master库中完成,因而,在实行办理义务之前,最好保留以后事情库,以便完成义务以后再切换归去。
PublicFunctionSQLGetCurrentDatabaseName(CnAsADODB.Connection)AsStringDimsSQLAsStringDimRSAsNewADODB.Recordset
OnErrorGoToerrSQLGetCurrentDatabaseNamesSQL=“selectCurrentDB=DB_NAME()"RS.OpensSQL,
CnSQLGetCurrentDatabaseName=Trim$(RS!CurrentDB)RS.CloseExitFunctionerrSQLGetCurrentDatabaseName:SQLGetCurrentDatabaseName
=“"EndFunction
2.判别一个数据库设备是不是存在
PublicFunctionSQLExistDeviceName(CnAsADODB.Connection,sDevNameAsString)AsBoolean
--依照称号判别一个设备是不是存在,假如存在,前往1,不然前往0
DimsSQLAsStringDimRSAsNewADODB.RecordsetDimbTmpAsBooleanOnError
GoToerrSQLExistDeviceNamesSQL=“
selectCntDev=count(*)frommaster.dbo.sysdeviceswherename=‘“&sDevName&”"RS.OpensSQL,CnIfRS!CntDev=0ThenbTmp=FalseElsebTmp=
TrueRS.CloseSQLExistDeviceName=bTmpExitFunctionerrSQLExistDeviceName:
SQLExistDeviceName=FalseEndFunction
3.判别一个假造设备号是不是被占用:SQLExistDeviceNumber。
4.找一个最小的还没有被占用的假造设备号:SQLGetUnusedDeviceNumber。
5.获得SQLServer安装目次下的DATA子目次路径:SQLGetDataPath。
6.创立一个新设备:SQLCreateDevice。
7.创立一个新的数据库:SQLCreateDatabase65。
8.取数据库设备的具体信息:SQLGetDeviceInfo。
9.扩展数据库设备的尺寸:SQLExpandDevice。
数据库使用体系在运转一段以后,数据量的增年夜常常请求数据库增年夜,进而请求扩展设备尺寸。惋惜DISKRESIZE语句请求的尺寸参数为扩展后的新尺寸,而非必要增添的尺寸。以是,必需事前查到设备的原有尺寸,才干利用DISKRESIZE语句。
10.判别一个数据库是不是存在:SQLExistDatabase。
11.删除一个数据库:SQLDropDatabase。
12.删除一个数据库设备:SQLDropDevice。
13.取SQLServer的版本信息:SQLGetVersionString。
期近将刊行的SQLServer7.0中,不再无数据库设备的观点,创立数据库也将变得加倍复杂。在创立特定的用户数据库时,为了辨别分歧的版本举行分歧的操纵,获得SQLServer的版本长短常主要的。
如果需要重新编写代码,几乎任何一门计算机语言都可以跨平台了,还用得着Java嘛,而且像PHP/C#等语言不需要修改代码都可以跨Windows/Linux。 |
|