无组件的数据库的备份与还原

5/30/2004来源:ASP实例人气:30246

看过数据库的备份与还原。大多数都是用组件来完成的。其实可通过sql语句来完成。
由于时间关系,未对参数进行验证和界面美化。代码仅供参考。
共计4个文件:下载地址:http://ad.ceh.com.cn/sql.rar
conn.asp
<%
conn="PRovider=SQLOLEDB.1;Persist Security Info=false;Server=127.0.0.1;UID=sa;pwd=www.zhi.net;database=master"
function rec(rs,sql)
set rs = server.CreateObject("ADODB.Recordset")
rs.Activeconnection = conn
rs.Source = sql
rs.CursorType = 0
rs.Cursorlocation = 3
rs.LockType = 1
rs.Open
if rs.eof and rs.bof then
rec= false
else
rec= true
end if
end function
function cmd(sql)
dim cmd1
set cmd1 = server.CreateObject("ADODB.Command")
cmd1.ActiveConnection = conn
cmd1.CommandText = sql
cmd1.CommandType = 1
cmd1.CommandTimeout = 0
cmd1.Prepared = true
cmd1.Execute()
end function
function cdb(rs)
rs.close()
set rs=nothing
end function
%>
dev.asp
<!--#include file="conn.asp"-->
 <%
 if request("AddDev") <> "" then
sql="select name,phyname from master..sysdevices where status=16 and name='"&request("devname")&"'"
rec chk,sql
if chk.eof and chk.bof then
sql = "sp_addumpdevice 'disk','"&request("devname")&"','"&request("phyname")&"'"
cmd sql
response.Write "<script language=javascript>window.location=reload;</script>"
else
response.Write "<script language=Javascript>alert('数据库中已存在"&request("devname")&"设备!');window.location='cmd.asp';</script>"
end if
end if
if request("deldev") <> "" then
sql = "sp_dropdevice '"&request("devname")&"'"
cmd sql
response.Write "<script language=javascript>window.location=reload;</script>"
end if
 rec li,"select name,phyname from master..sysdevices where status=16"
 if li.eof and li.bof then
 response.Write "<font color=#ff0000>请新建备份设备用来备份还原数据库</font>"
 else
 %><style type="text/CSS">
<!--
body {
 margin-left: 0px;
 margin-top: 0px;
}
-->
</style>
<table width="60%"  border="0" cellspacing="0">
  <tr>
    <td width="29%">名称:</td>
    <td width="71%">位置:</td>
  </tr>
  <%
  i=0
  while not li.eof
  i=i+1
  %>
  <tr>
    <td><%=li(0)%></td>
    <td><%=li(1)%> <a href='dev.asp?DelDev=1&devname=<%=li(0)%>'>删除此设备</a></td>
  </tr>
  <%
  li.movenext
  wend
  response.Write "<script language=javascript>top.document.all.dev.height='"&(i+1)*25&"';</script>"
   cdb li
  %>
</table>
<%
end if
%>
default.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="conn.asp"-->
<%
'*************************************************
'数据库备份与还原
'编        程:魔术师·杨(MagicYang.CN)
'完成日期:2004-4-11
'说明:由于时间关系,未对数据做安全性验证。
'应用时请对数据进行验证,确保安全。
'QQ:1168064  欢迎大家互相交流
'*************************************************
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>数据库的备份与还原</title>
</head>

<body>
<%

%>
<table width="80%"  border="0" align="center">
  <tr>
    <td width="21%" valign="top">数据库设备:</td>
    <td width="79%">
<iframe name="dev" src="dev.asp" width="100%" height="200" frameborder="0" scrolling="no"></iframe>
 </td>
  </tr>
  <tr>
    <td>添加设备:</td>
    <td>设备名称:
    <input name="devname" type="text" id="devname" size="10" maxlength="10"></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>文件路径:
    <input name="phyname" type="text" id="phyname" size="20" maxlength="50">
    <input type="button" value="添加设备" onClick="document.all.dev.src='dev.asp?AddDev=1&devname='+document.all.devname.value+'&phyname='+document.all.phyname.value;"></td>
  </tr>
  <tr>
    <td valign="top">备份/还原:</td>
    <td>
  数据库名称:
  <%
 rec li,"select name from master..sysdatabases where status=16"
 
 %>
 <select name="b_data">
 <%
  while not li.eof
  response.Write "<option value="&li(0)&">"&li(0)&"</option>"
  li.movenext
  wend
  cdb li
  %>
 </select><br>
 备份到设备:<%
 rec li,"select name,phyname from master..sysdevices where status=16"
  %>
  <select name="b_dev">
  <%
  while not li.eof
  response.Write "<option value="&li(0)&">"&li(0)&"(文件:"&li(1)&")</option>"
  li.movenext
  wend
        cdb li
  %>
   </select><br>
   <input name="按钮" type="button" value="备份数据库" onClick="window.location='cmd.asp?action=backup&database='+document.all.b_data.value+'&dev='+document.all.b_dev.value;">
   &nbsp;
   <input name="按钮" type="button" value="还原数据库" onClick="window.location='cmd.asp?action=RESTORE&database='+document.all.b_data.value+'&dev='+document.all.b_dev.value;"> </td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>
cmd.asp
<!--#include file="conn.asp"-->
<%
on error resume next
if request("action") <> "" then
if request("action")="backup" then
sql ="BACKUP DATABASE "&request("database")&" To "& request("dev")
cmd sql
if err.number > 0 then
response.Write "<script language=javascript>alert('数据库"&request("database")&"备份失败!');window.location='default.asp';</script>"
else
response.Write "<script language=javascript>alert('数据库"&request("database")&"备份成功!');window.location='default.asp';</script>"
end if
else
sql ="RESTORE DATABASE "&request("database")&" From "& request("dev")
cmd sql
if err.number > 0 then
response.Write "<script language=javascript>alert('数据库"&request("database")&"还原失败!');window.location='default.asp';</script>"
else
response.Write "<script language=javascript>alert('数据库"&request("database")&"还原成功!');window.location='default.asp';</script>"
end if
end if
end if
%>


希望大家互相交流!QQ:1168064