ASP.NET编程:用ADO办理SQL Server数据库
无论谁倒了对双方阵营的粉丝们也是有害无益。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[,database_device[=size]]...]
[,database_device[=size]]...]
个中,年夜部分参数都是可选的,我们只必要指定一个设备名及数据库的巨细便可,而数据库名、设备名、巨细在创立设备的时分已断定好了,以是,这个语句的参数不存在成绩。
详细完成
利用一般的使用开辟工具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。 由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。 在调试JSP代码时,如果程序出错,JSP服务器会返回出错信息,并在浏览器中显示。这时,由于JSP是先被转换成Servlet后再运行的,所以,浏览器中所显示的代码出错的行数并不是JSP源代码的行数。 大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。 对于中小项目来说.net技术是完全可以胜任,但为什么现在大型公司或网站都选择php或java呢?就是因为微软不够开放,没有提供从硬件到应用服务器再到业务应用的整套解决方案。 ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。 网页从开始简单的hmtl到复杂的服务语言,走过了10多个年头,各种技术层出不穷,单个的主流技术也在不断翻新的版本,现在分析下各种语言的区别、优势、劣势、开发注意事项! asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦!
页:
[1]