function onBack()
{
document.forms[0].action ="./right.asp";
document.forms[0].submit();
}
function CheckForm()
{
}
</SCRIPT>
<%
response.Expires=-1
response.AddHeader "Pragma","no-cache"
response.AddHeader "cache-control","no-store"
strType=session("usertype")
if (strType = "" ) then
response.redirect "index.asp"
end if
dim bak_file,act
bak_file = trim(request.form("bak_file"))
act = lcase(request.form("act"))
response.Write(act)
if act = "backup" then
on error resume next
set dmosvr=server.CreateObject("SQLDMO.SQLServer")
dmosvr.connect sqlserver,sqlname, sqlpassword
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
mdevname="Backup_"&sqlname&"_"&databasename
set dmodev=server.CreateObject("SQLDMO.BackupDevice")
dmodev.name=mdevname
dmodev.type=2
dmodev.PhysicalLocation=bak_file
dmosvr.BackupDevices.Add dmodev
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
set dmobak=server.CreateObject("SQLDMO.Backup")
dmobak.database=databasename
dmobak.devices=mdevname
dmobak.sqlbackup dmosvr
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
dmosvr.backupdevices(mdevname).remove
set dmobak=nothing
set dmodev=nothing
dmosvr.disconnect
set dmosvr=nothing
else if act = "restore" then
bak_file=trim(request("bak_file"))
Set dmosrv=Server.CreateObject("SQLDMO.SQLServer")
dmosrv.Connect sqlserver,sqlname, sqlpassword
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
mdevname="Restore_"&sqlname&"_"&databasename
dmosvr.backupdevices(mdevname).remove
err.clear
set dmodev=server.CreateObject("SQLDMO.BackupDevice")
dmodev.name=mdevname
dmodev.type=2
dmodev.PhysicalLocation=bak_file
dmosvr.BackupDevices.Add dmodev
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
set dmores=server.CreateObject("SQLDMO.Restore")
dmores.database=databasename
dmores.devices=mdevname
dmores.sqlrestore dmosvr
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
set dmores=nothing
set dmodev=nothing
dmosvr.disconnect
set dmosvr=nothing
end if
end if
'if (act <> "backup") and (act<> "restore") then
' Response.write "<font color=red>没有选择操作</font>"
'end if
bak_file = trim(request.form("bak_file"))
act = lcase(request.form("act"))
response.Write(act)
if act = "backup" then
on error resume next
set dmosvr=server.CreateObject("SQLDMO.SQLServer")
dmosvr.connect sqlserver,sqlname, sqlpassword
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
mdevname="Backup_"&sqlname&"_"&databasename
set dmodev=server.CreateObject("SQLDMO.BackupDevice")
dmodev.name=mdevname
dmodev.type=2
dmodev.PhysicalLocation=bak_file
dmosvr.BackupDevices.Add dmodev
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
set dmobak=server.CreateObject("SQLDMO.Backup")
dmobak.database=databasename
dmobak.devices=mdevname
dmobak.sqlbackup dmosvr
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
dmosvr.backupdevices(mdevname).remove
set dmobak=nothing
set dmodev=nothing
dmosvr.disconnect
set dmosvr=nothing
else if act = "restore" then
bak_file=trim(request("bak_file"))
Set dmosrv=Server.CreateObject("SQLDMO.SQLServer")
dmosrv.Connect sqlserver,sqlname, sqlpassword
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
mdevname="Restore_"&sqlname&"_"&databasename
dmosvr.backupdevices(mdevname).remove
err.clear
set dmodev=server.CreateObject("SQLDMO.BackupDevice")
dmodev.name=mdevname
dmodev.type=2
dmodev.PhysicalLocation=bak_file
dmosvr.BackupDevices.Add dmodev
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
set dmores=server.CreateObject("SQLDMO.Restore")
dmores.database=databasename
dmores.devices=mdevname
dmores.sqlrestore dmosvr
if err.number>0 then Response.Redirect("http:backuperr.asp?err="&err.number)
set dmores=nothing
set dmodev=nothing
dmosvr.disconnect
set dmosvr=nothing
end if
end if
'if (act <> "backup") and (act<> "restore") then
' Response.write "<font color=red>没有选择操作</font>"
'end if
现在备份可以了.恢复的时候出现个问题,请大家帮忙一下.
恢复代码:
Dbpath=request.form("Dbpath")
backpath=request.form("backpath")
if dbpath="" then
response.write "请输入您要恢复成的数据库全名"
else
Dbpath=server.mappath(Dbpath)
end if
backpath=server.mappath(backpath)
Set Fso=server.createobject("scripting.filesystemobject")
if fso.fileexists(dbpath) then
fso.copyfile Dbpath,Backpath
response.write "成功恢复数据!"
else
response.write "备份目录下并无您的备份文件!"
end if
===
dbpath是备份的文件,现在我用<input name=DBpath type="FILE" size="30">浏览硬盘选择一个备份文件来恢复.但mappath不支持绝对路径,dbpath只能是相对路径.
现在我想用绝对路径,有什么办法可以解决?
谢谢!!!
set fso_bak=server.CreateObject("scripting.filesystemobject")
if not fso_bak.FolderExists(server.MapPath("../DB/bak")) then fso.CreateFolder(server.MapPath("../DB/bak"))
fso_bak.CopyFile server.MapPath("../DB/MyShop.mdb"),server.MapPath("../DB/bak/"& bak_time)
set fso_bak=nothing
if err.number<>0 then
Response.Write err.Description
err.Clear
else
Response.Write "<script language=javascript>alert(""Database Backup Successful!"");window.location.href=""bak_db.asp""</script>"
end if
Response.End