法师怎么打黄金虫:aSP连接sql数据库方法

来源:百度文库 编辑:高校问答 时间:2024/04/28 06:12:58
大家帮忙提供一些关于aSP连接sql数据库方法的资料 是演讲用的 最好详细点 谢谢了 java连接数据库方法也行

首先,你要这样来备份数据库:

SQL="backup database 数据库名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"' with INIT"

这样你的备份将覆盖原来的同名备份(如果有的话),否则备份将附加在原来的备份上,不仅文件越来越大,日后还原时还会发生各种问题。

其次,数据库在有用户连接时是不能恢复的。

所以你要备份的话,不能链接到你的数据库,要链接到master数据库,使用:

cnn.open "driver={SQL Server};Server=服务器名;uid=sa;pwd=;database=master"

再次,仅仅你不链接到数据库,但不能保证没有别人链接数据库,所以还要断开所有用户到数据库的连接,才能开始还原。可以使用下列语句来进行:

declare backup_cursor cursor global for select 'kill '+rtrim(spid) from master.dbo.sysprocesses where dbid=db_id('数据库名') exec sp_msforeach_worker '?'

所以,你的程序要改成这样:

1、备份
<%
SQL="backup database 数据库名 to disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"' with INIT"
set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=服务器名;uid=sa;pwd="
cnn.execute SQL
on error resume next
if err<>0 then
response.write "错误:"&err.Descripting
else
response.write "数据备份成功!"
end if
cnn.close
set cnn=nothing
%>

2、恢复
<%
aSQL="declare backup_cursor cursor global for select 'kill '+rtrim(spid) from master.dbo.sysprocesses where dbid=db_id('数据库名') exec sp_msforeach_worker '?'"

bSQL="Restore database 数据库名 from disk='"&Server.MapPath("backup")&"\"&"backuptext.dat"&"'"

set cnn=Server.createobject("adodb.connection")
cnn.open "driver={SQL Server};Server=服务器名;uid=sa;pwd=;database=master"
cnn.execute aSQL
cnn.execute bSQL
on error resume next
if err<>0 then
response.write "错误:"&err.Descripting
else
response.write "数据恢复成功!"
end if
cnn.close
set cnn=nothing
%>
参考资料:http://topic.csdn.net/t/20050529/16/4043909.html