<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>数据备份</title>
<script language="JavaScript">
function checkdata(){
dataaddr=document.form.dataaddr.value;
testfitem=/^[C-Z]{1}$/;
fitem=dataaddr.charAt(0)
if (!testfitem.test(fitem)){
alert("非法的备份地址");
document.form.dataaddr.focus();
return false;
}
if(dataaddr.charAt(1)!=":"){
alert("非法的备份地址");
document.form.dataaddr.focus();
return false;
}
if(dataaddr.charAt(2)!="\\"){
alert("非法的备份地址");
document.form.dataaddr.focus();
return false;
}
var tstr="0123456789ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\\"
for (var s=0;s<dataaddr.length-3;s++)
{
teststr=dataaddr.charAt(s)
if (tstr.indexOf(teststr)==-1){
alert("非法的备份地址");
document.form.dataaddr.focus();
return false;
}
}
namestr=/^[a-zA-Z0-9\-]*$/;
dataname=document.form.dataname.value;
if (document.form.dataname.value.length==0){
alert("备份文件名不能为空!");
document.form.dataname.focus();
return false;
}
if (!namestr.test(dataname)){
alert("备份文件名输入中含有非法字符");
document.form.dataname.focus();
return false;
}
return true
}
</script>
</head>
<%
'*****************************************************************
Function CheckDir(FolderPath)
Set fso1 = CreateObject("Scripting.FileSystemObject")
If fso1.FolderExists(FolderPath) then
'存在
CheckDir = True
Else
'不存在
CheckDir = False
End if
Set fso1 = nothing
End Function
Function MakeNewsDir(foldername)
dim f
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.CreateFolder(foldername)
MakeNewsDir = True
Set fs = nothing
End Function
'*****************************************************************
'创建文件夹.
if request("action")="backup" then
dataaddr=trim(request("dataaddr"))
set createfso=createobject("Scripting.FileSystemObject")
if CheckDir(dataaddr)=false then '不存在该文件夹.
if instr(3,dataaddr,"\")>0 then '存在二级目录以上
dataaddr=split(dataaddr,"\",-1)
for t=0 to ubound(dataaddr)
if t=0 then
backupaddr=backupaddr+dataaddr(t)
else
backupaddr=backupaddr&"\"+dataaddr(t)
if CheckDir(backupaddr)=false then '在已存在的文件夹里建立新文件夹.
createfso.createfolder(backupaddr)
end if
end if
next
dataaddr=backupaddr '得到新建的文件夹.
else '只有一级目录
createfso.createobject(dataaddr)
dataaddr=dataaddr '得到新建的文件夹.
end if
else '存在该文件夹.
dataaddr=dataaddr
end if
set createfso=nothing
'****************************************************************
'取得数据库名
Set rs=Conn.OpenSchema(20)
While not rs.EOF
databasename=rs(0)
rs.MoveNext
Wend
'备份数据库到站内临时目录.
dataname=trim(request("dataname"))&".dat" '取得备份后的数据名称.
tempaddr=Server.MapPath("backup") '取得站内临时备份文件夹
if CheckDir(tempaddr)=false then '不存在该文件夹,则创建.
MakeNewsDir(tempaddr)
end if
SQL="backup database " &databasename& " to disk='" & tempaddr & "\" & dataname & "'"
response.write sql
'response.Write "dataname:"&dataname&"<br>"
'response.Write "tempaddr:"&tempaddr&"<br>"
'response.Write "SQL:"&SQL&"<br>"
conn.execute(SQL)
on error resume next
if err<>0 then
response.write "错误:"&err.Descripting
end if