数据库的备份的问题,我这怎么不行呀。
国手 2004-01-16 04:32:39 conn.asp
<%
set conn=server.CreateObject("ADODB.Connection")
connstr="driver={SQL Server};server=jia;database=huangyan;uid=sa;pwd=huangyan;"
conn.open connstr
%>
default.asp
<!--#include file="conn.asp"-->
<html>
<head>
<link href="long-css.css" rel="stylesheet" type="text/css">
<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
'****************************************************************
'备份数据库到站内临时目录.
dataname=trim(request("dataname"))&".dat" '取得备份后的数据名称.
tempaddr=Server.MapPath("backup") '取得站内临时备份文件夹
if CheckDir(tempaddr)=false then '不存在该文件夹,则创建.
MakeNewsDir(tempaddr)
end if
SQL="backup database huangyan to disk='" & tempaddr & "\" & dataname & "'"
'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
'else
' response.write "数据备份成功!"
end if
'****************************************************************
'拷贝备份数据到指定的文件夹中并且删除站点内的临时文件.
realaddr=tempaddr&"\"&dataname
'response.Write "realaddr:"&realaddr&"<br>"
'response.Write "dataaddr:"&dataaddr&"<br>"
set copyfso=createobject("Scripting.FileSystemObject")
copyfso.CopyFile realaddr,dataaddr&"\" '拷贝备份好的数据库文件到指定的文件夹.
copyfso.deleteFile(realaddr) '删除站点内保存的临时文件.
set copyfso=nothing
end if
%>
<%
baktext=request("baktext")
if baktext<>"" then
SQL1="Restore database huangyan from disk='"&baktext1&"'"
conn.execute (SQL1)
end if
%>
<body>
<form name="form" method="post" action="default.asp" >
<table width="500" border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#ffffff" bgcolor="#FFFFFF">
<tr valign="middle">
<td align="center">数据备份</td>
</tr>
<tr valign="middle">
<td height="28">请输入备份数据的地址:
<input type="text" name="dataaddr" class="" style="width:200"> </td>
</tr>
<tr valign="middle">
<td> 备份数据库名称: <input type="text" name="dataname" class="" style="width:200"></td>
</tr>
<tr valign="middle">
<td height="33" align="center"> <input type="submit" name="Submit" value=">>>备 份<<<">
<input type="hidden" name="action" value="backup"> </td>
</tr>
<tr valign="middle">
<td align="left"> * 请输入型如:C:\backup合法的备份地址;<br>
* 数据库备份名称只能输入"字母或数字"。</td>
</tr>
</table>
</form>
<p>
<p>
<form name="form1" id="form1" action="default.asp">
<table width="500" border="1" align="center" cellpadding="5" cellspacing="0" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#ffffff" bgcolor="#FFFFFF">
<tr>
<td align="center"><input name="baktext" type="file" id="baktext"></td>
</tr>
<tr>
<td align="center"><input type="submit" name="Submit" value=">>>还 原<<<"></td>
</tr>
</table>
</form>
</body>
</html>
它总是说我还原数据库的时候错误。但是可以备份数据库。