一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

asp数据库备份代码

时间:2008-05-20 编辑:简简单单 来源:一聚教程网

 代码如下 复制代码

<%
Server.ScriptTimeOut = 99999
Admin_header
'Response.Write ""
'=====================================================================
' 软件名称:新云网站管理系统
' 当前版本:NewCloud Site Management System Version 2.1
' 文件名称:admin_database.asp
' 更新日期:2004-11-20

'=====================================================================
' Copyright 2002-2005 newasp.net - All Rights Reserved.
' newasp is a trademark of newasp.net
'=====================================================================
Dim bkfolder, bkdbname, fso, fso1
Dim Action
Action = LCase(Request("action"))

Select Case Action
 Case "renamedata" '数据库更名
  If Not ChkAdmin("RenameData") Then
   Server.Transfer("showerr.asp")
   Request.End
  End If
  Call RenameData()
 Case "backupdata" '备份数据
  If Not ChkAdmin("BackupData") Then
   Server.Transfer("showerr.asp")
   Request.End
  End If
  If request("act") = "Backup" Then
   If IsSqlDataBase = 1 Then
    Call BackupSqlDatabase()
   Else
    Call BackupDatabase()
   End If
  Else
   Call BackupData()
  End If
 Case "compressdata" '压缩数据
  If Not ChkAdmin("CompressData") Then
   Server.Transfer("showerr.asp")
   Request.End
  End If
  If request("act") = "Compress" Then
   Call CompressDatabase()
  Else
   Call CompressData()
  End If
 Case "restoredata" '恢复数据
  If Not ChkAdmin("RestoreData") Then
   Server.Transfer("showerr.asp")
   Request.End
  End If
  If request("act") = "Restore" Then
   If IsSqlDataBase = 1 Then
    Call RestoreSqlDatabase()
   Else
    Call RestoreDatabase
   End If
   Application.Contents.RemoveAll
  Else
   Call RestoreData()
  End If

 Case "spacesize" '系统空间占用
  If Not ChkAdmin("SpaceSize") Then
   Server.Transfer("showerr.asp")
   Request.End
  End If
  Call SpaceSize()

 Case Else
  Errmsg = ErrMsg + "

  • 选取相应的操作。"
      ReturnError(ErrMsg)

    End Select
    If FoundErr = True Then
     ReturnError(ErrMsg)
    End If
    Admin_footer
    SaveLogInfo(AdminName)
    CloseConn
    '====================系统空间占用=======================
    Sub SpaceSize()
     On Error Resume Next
    %>
      

       
           
            
         
          
         
        

             系统空间占用情况
           
       
        

        
       
        法规数据占用空间:  height=10> <%showSpaceinfo("../database")%>


        备份数据占用空间:  height=10> <%showSpaceinfo("databackup")%>


       后台管理占用空间:  height=10> <%showSpaceinfo("./")%>


        软件频道占用空间:  height=10> <%showSpaceinfo("../Soft")%>


       文章频道占用空间:  height=10> <%showSpaceinfo("../Article")%>


        模板图片占用空间:  height=10> <%showSpaceinfo("../skin")%>


        图片文件占用空间:  height=10> <%showSpaceinfo("../images")%>


        用户文件占用空间:  height=10> <%showSpaceinfo("../user")%>


       上传文件占用空间:  height=10> <%showSpaceinfo("../UploadFile")%>


        系统占用空间总计:  <%showspecialspaceinfo("All")%>
        
     
          

    <%
    End Sub

    Sub SQLUserReadme()
    %>
      

       
           
            
         
          
         
        

             SQL数据库数据处理说明
           
       
        

    一、备份数据库



    1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server

    2、SQL Server组-->双击打开你的服务器-->双击打开数据库目录

    3、选择你的数据库名称(如系统数据库Newasp)-->然后点上面菜单中的工具-->选择备份数据库

    4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份



    二、还原数据库


    1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server

    2、SQL Server组-->双击打开你的服务器-->点图标栏的新建数据库图标,新建数据库的名字自行取

    3、点击新建好的数据库名称(如系统数据库Newasp)-->然后点上面菜单中的工具-->选择恢复数据库

    4、在弹出来的窗口中的还原选项中选择从设备-->点选择设备-->点添加-->然后选择你的备份文件名-->添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)-->然后点击上方常规旁边的选项按钮

    5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是NewCloud_data.mdf,现在的数据库是Newasp,就改成Newasp_data.mdf),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是*_log.ldf结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:\sqldata\NewCloud_data.mdf或者d:\sqldata\NewCloud_log.ldf),否则恢复将报错

    6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL操作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复操作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复

    三、收缩数据库


    一般情况下,SQL数据库的收缩并不能很大程度上减小数据库大小,其主要作用是收缩日志大小,应当定期进行此操作以免数据库日志过大

    1、设置数据库模式为简单模式:打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->双击打开数据库目录-->选择你的数据库名称(如系统数据库Newasp)-->然后点击右键选择属性-->选择选项-->在故障还原的模式中选择“简单”,然后按确定保存

    2、在当前数据库上点右键,看所有任务中的收缩数据库,一般里面的默认设置不用调整,直接点确定

    3、收缩数据库完成后,建议将您的数据库属性重新设置为标准模式,操作方法同第一点,因为日志在一些异常情况下往往是恢复数据库的重要依据


    四、设定每日自动备份数据库


    强烈建议有条件的用户进行此操作!

    1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器

    2、然后点上面菜单中的工具-->选择数据库维护计划器

    3、下一步选择要进行自动备份的数据-->下一步更新数据优化信息,这里一般不用做选择-->下一步检查数据完整性,也一般不选择

    4、下一步指定数据库维护计划,默认的是1周备份一次,点击更改选择每天备份后点确定

    5、下一步指定备份的磁盘目录,选择指定目录,如您可以在D盘新建一个目录如:d:\databak,然后在这里选择使用此目录,如果您的数据库比较多最好选择为每个数据库建立子目录,然后选择删除早于多少天前的备份,一般设定4-7天,这看您的具体备份要求,备份文件扩展名一般都是bak就用默认的

    6、下一步指定事务日志备份计划,看您的需要做选择-->下一步要生成的报表,一般不做选择-->下一步维护计划历史记录,最好用默认的选项-->下一步完成

    7、完成后系统很可能会提示Sql Server Agent服务未启动,先点确定完成计划设定,然后找到桌面最右边状态栏中的SQL绿色图标,双击点开,在服务中选择Sql Server Agent,然后点击运行箭头,选上下方的当启动OS时自动启动服务

    8、这个时候数据库计划已经成功的运行了,他将按照您上面的设置进行自动备份



    修改计划:

    1、打开企业管理器,在控制台根目录中依次点开Microsoft SQL Server-->SQL Server组-->双击打开你的服务器-->管理-->数据库维护计划-->打开后可看到你设定的计划,可以进行修改或者删除操作



    五、数据的转移(新建数据库或转移服务器)


    一般情况下,最好使用备份和还原操作来进行转移数据,在特殊情况下,可以用导入导出的方式进行转移,这里介绍的就是导入导出方式,导入导出方式转移数据一个作用就是可以在收缩数据库无效的情况下用来减小(收缩)数据库的大小,本操作默认为您对SQL的操作有一定的了解,如果对其中的部分操作不理解,可以咨询动网相关人员或者查询网上资料

    1、将原数据库的所有表、存储过程导出成一个SQL文件,导出的时候注意在选项中选择编写索引脚本和编写主键、外键、默认值和检查约束脚本选项

    2、新建数据库,对新建数据库执行第一步中所建立的SQL文件

    3、用SQL的导入导出方式,对新数据库导入原数据库中的所有表内容

        

     
          

    <%
    End Sub
    '====================数据库更名=========================
    Sub RenameData()
     If IsSqlDataBase = 1 Then
      SQLUserReadme()
      Exit Sub
     End If
     Dim AccDataPath,AccDataName,sAccDataPath
     AccDataPath = Replace(db,"/","\")
     sAccDataPath = Split(AccDataPath, "\")
     AccDataName = sAccDataPath(UBound(sAccDataPath))
    %>







      数剧库更名 ( 需要FSO支持,FSO相关帮助请看微软网站 )
    请输入要更改的数据库名称
    操作前最好先备份数据库!

         

    <%
    End Sub

    '====================恢复数据库=========================

    Sub RestoreData()
     If IsSqlDataBase = 1 Then
    %>
     


          
           
          
          
          
           
           
          
       

             恢复SQL数据
           

              
          恢复SQL数据库名称:
      
          SQL数据库用户名称: 请输入您的SQL数据库用户名
      
          SQL数据库用户密码: 请输入您的SQL数据库连接密码
      
          SQL数据库服务器名: 连接服务器名(本地用local,外地用IP)
      
          备份SQL数据库目录: 请输入您备份的数据库目录
      
          备份SQL数据库名称: 请输入您备份的数据库名

            

            -----------------------------------------------------------------------------------------

              您可以用这个功能来恢复您的法规数据,请确定你的数据库用户有相关权限才能恢复!

              注意:数据库使用中可能无法恢复 
           

    <%
     Else
    %>

     
          
        
          
          
           
           
          
         

              恢复系统数据 ( 需要FSO支持,FSO相关帮助请看微软网站 )
           

              备份数据库路径(相对):  

              目标数据库路径(相对):
      填写您当前使用的数据库路径,如不想覆盖当前文件,可自行命名(注意路径是否正确),然后修改conn.asp文件,如果目标文件名和当前使用数据库名一致的话,不需修改conn.asp文件

            

            -----------------------------------------------------------------------------------------

              在上面填写本程序的数据库路径全名,本程序的默认备份数据库文件为DataBackup\NewCloud_Backup.MDB,请按照您的备份文件自行修改。

              您可以用这个功能来备份您的法规数据,以保证您的数据安全!

              注意:所有路径都是相对与程序空间根目录的相对路径
           

    <%
     End If
    End Sub
    '====================备份数据库=========================
    Sub BackupData()
     If IsSqlDataBase = 1 Then
    %>
     
          
           
          
          
          
           
           
          
       

             备份SQL数据
           

              
          当前SQL数据库名称:
      
          SQL数据库用户名称: 请输入您的SQL数据库用户名
      
          SQL数据库用户密码: 请输入您的SQL数据库连接密码
      
          SQL数据库服务器名: 连接服务器名(本地用local,外地用IP)
      
          备份SQL数据库目录: 如目录不存在,程序将自动创建
      
          备份SQL数据库名称: 如使用默认的($1)备份名,系统将自动按日期时间创建备份名称

            

            -----------------------------------------------------------------------------------------

              您可以用这个功能来备份您的法规数据,以保证您的数据安全!

              注意:所有路径都是相对与程序空间管理目录的相对路径    
           

    <%
    Else
    %>
     
          
           
          
          
          
           
           
          
       

             备份系统数据 ( 需要FSO支持,FSO相关帮助请看微软网站 )
           

              
          当前数据库路径(相对路径):
      
          备份数据库目录(相对路径): 如目录不存在,程序将自动创建
      
          备份数据库名称(填写名称): 如备份目录有该文件,将覆盖,如没有,将自动创建

            

            -----------------------------------------------------------------------------------------

              在上面填写本程序的数据库路径全名,本程序的默认数据库文件为<%=db%>,请一定不能用默认名称命名备份数据库

              您可以用这个功能来备份您的法规数据,以保证您的数据安全!

              注意:所有路径都是相对与程序空间管理目录的相对路径    
           

    <%
    End If
    End Sub

    Sub BackupDatabase()
     Dbpath = request.Form("Dbpath")
     If InStr(Dbpath, ":") = 0 Then
      Dbpath = Server.MapPath(Dbpath)
     Else
      Dbpath = Dbpath
     End If
     bkfolder = request.Form("bkfolder")
     bkdbname = request.Form("bkdbname")
     Set Fso = server.CreateObject("scripting.filesystemobject")
     If fso.FileExists(dbpath) Then
      If CheckDir(bkfolder) = True Then
       fso.CopyFile dbpath, bkfolder& "\"& bkdbname
      Else
       MakeNewsDir bkfolder
       fso.CopyFile dbpath, bkfolder& "\"& bkdbname
      End If
      Succeed("备份数据库成功,您备份的数据库路径为" &bkfolder& "\"& bkdbname)
     Else
      FoundErr = True
      ErrMsg = "找不到您所需要备份的文件。"
      Exit Sub
     End If
    End Sub
    Sub RestoreDatabase()
     Dim backpath,Dbpath
     Dbpath = request.Form("Dbpath")
     backpath = request.Form("backpath")
     If dbpath = "" Then
      FoundErr = True
      ErrMsg = "请输入您要恢复成的数据库全名"
      Exit Sub
     End If
     If InStr(Dbpath, ":") = 0 Then
      Dbpath = Server.MapPath(Dbpath)
     Else
      Dbpath = Dbpath
     End If
     If InStr(backpath, ":") = 0 Then
      backpath = Server.MapPath(backpath)
     Else
      backpath = backpath
     End If
     Set Fso = server.CreateObject("scripting.filesystemobject")
     If fso.FileExists(dbpath) Then
      fso.CopyFile Dbpath, Backpath
      Succeed("成功恢复数据!")
     Else
      FoundErr = True
      ErrMsg = "备份目录下并无您的备份文件!"
      Exit Sub
     End If
    End Sub
    '------------------检查某一目录是否存在-------------------
    Function CheckDir(FolderPath)
     folderpath = Server.MapPath(".")&"\"&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 fso1 = CreateObject("Scripting.FileSystemObject")
     Set f = fso1.CreateFolder(foldername)
     MakeNewsDir = True
     Set fso1 = Nothing
    End Function
    '====================压缩数据库 =========================
    Sub CompressData()

     If IsSqlDataBase = 1 Then
      SQLUserReadme()
      Exit Sub
     End If
    %>
















      压缩数据库 ( 需要FSO支持,FSO相关帮助请看微软网站 )
    注意:
    输入数据库所在相对路径,并且输入数据库名称(正在使用中数据库不能压缩,请选择备份数据库进行压缩操作)
    压缩数据库:
    如果使用 Access 97 数据库请选择
    (默认为 Access 2000 数据库)


    <%
    End Sub

    Sub CompressDatabase()
     Dim dbpath, boolIs97
     dbpath = request("dbpath")
     boolIs97 = request("boolIs97")

     If dbpath <> "" Then
      If InStr(Dbpath, ":") = 0 Then
       Dbpath = Server.MapPath(Dbpath)
      Else
       Dbpath = Dbpath
      End If
      Response.Write(CompactDB(dbpath, boolIs97))
     Else
      FoundErr = True
      ErrMsg = "请输入要压缩的数据库路径!"
      Exit Sub
     End If
    End Sub
    '=====================压缩参数=========================
    Function CompactDB(dbPath, boolIs97)
     Dim fso, Engine, strDBPath, JET_3X
     strDBPath = Left(dbPath, instrrev(DBPath, "\"))
     Set fso = CreateObject("Scripting.FileSystemObject")

     If fso.FileExists(dbPath) Then
      fso.CopyFile dbpath, strDBPath & "temp.mdb"
      Set Engine = CreateObject("JRO.JetEngine")

      If boolIs97 = "True" Then
       Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb", _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp1.mdb;" _
        & "Jet OLEDB:Engine Type=" & JET_3X
      Else
       Engine.CompactDatabase "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp.mdb", _
        "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath & "temp1.mdb"
      End If

      fso.CopyFile strDBPath & "temp1.mdb", dbpath
      fso.DeleteFile(strDBPath & "temp.mdb")
      fso.DeleteFile(strDBPath & "temp1.mdb")
      Set fso = Nothing
      Set Engine = Nothing
      Succeed("你的数据库, " & dbpath & ", 已经压缩成功!")
     Else
      ReturnError("数据库名称或路径不正确. 请重试!")
     End If

    End Function
    '=====================系统空间参数=========================
    Sub ShowSpaceInfo(drvpath)
     Dim fso, d, Size, showsize
     Set fso = server.CreateObject("scripting.filesystemobject")
     drvpath = server.mappath(drvpath)
     Set d = fso.GetFolder(drvpath)
     Size = d.Size
     showsize = Size & " Byte"
     If Size>1024 Then
      Size = (Size / 1024)
      showsize = FormatNumber(Size, 2) & " KB"
     End If
     If Size>1024 Then
      Size = (Size / 1024)
      showsize = FormatNumber(Size, 2) & " MB"
     End If
     If Size>1024 Then
      Size = (Size / 1024)
      showsize = FormatNumber(Size, 2) & " GB"
     End If
     response.Write "" & showsize & ""
    End Sub

    Sub Showspecialspaceinfo(method)
     Dim fso, d, fc, f1, Size, showsize, drvpath
     Set fso = server.CreateObject("scripting.filesystemobject")
     drvpath = server.mappath("../")
     'drvpath = Left(drvpath, (instrrev(drvpath, "\") -1))
     Set d = fso.GetFolder(drvpath)

     If method = "All" Then
      Size = d.Size
     ElseIf method = "Program" Then
      Set fc = d.Files
      For Each f1 in fc
       Size = Size + f1.Size
      Next
     End If

     showsize = Size & " Byte"
     If Size>1024 Then
      Size = (Size / 1024)
      showsize = FormatNumber(Size, 2) & " KB"
     End If
     If Size>1024 Then
      Size = (Size / 1024)
      showsize = FormatNumber(Size, 2) & " MB"
     End If
     If Size>1024 Then
      Size = (Size / 1024)
      showsize = FormatNumber(Size, 2) & " GB"
     End If
     response.Write "" & showsize & ""
    End Sub

    Function Drawbar(drvpath)
     Dim fso, drvpathroot, d, Size, TotalSize, barsize
     Set fso = server.CreateObject("scripting.filesystemobject")
     drvpathroot = server.mappath("../pic")
     drvpathroot = Left(drvpathroot, (instrrev(drvpathroot, "\") -1))
     Set d = fso.GetFolder(drvpathroot)
     TotalSize = d.Size

     drvpath = server.mappath(drvpath)
     Set d = fso.GetFolder(drvpath)
     Size = d.Size

     barsize = CDbl((Size / TotalSize) * 400)
     Drawbar = barsize
    End Function

    Function Drawspecialbar()
     Dim fso, drvpathroot, d, fc, f1, Size, TotalSize, barsize
     Set fso = server.CreateObject("scripting.filesystemobject")
     drvpathroot = server.mappath("../pic")
     drvpathroot = Left(drvpathroot, (instrrev(drvpathroot, "\") -1))
     Set d = fso.GetFolder(drvpathroot)
     TotalSize = d.Size

     Set fc = d.Files
     For Each f1 in fc
      Size = Size + f1.Size
     Next

     barsize = CDbl((Size / TotalSize) * 400)
     Drawspecialbar = barsize
    End Function

    Sub CheckSql()
     If Trim(Request.Form("SqlDataName")) = "" Then
      FoundErr = True
      ErrMsg = ErrMsg & "

  • 请输入SQL数据库名!
  • "
     End If
     If Trim(Request.Form("SqlUserPass")) = "" Then
      FoundErr = True
      ErrMsg = ErrMsg & "
  • 请输入SQL数据库用户密码!
  • "
     End If
     If Trim(Request.Form("SqlUserID")) = "" Then
      FoundErr = True
      ErrMsg = ErrMsg & "
  • 请输入SQL数据库用户名称!
  • "
     End If
     If Trim(Request.Form("SqlServer")) = "" Then
      FoundErr = True
      ErrMsg = ErrMsg & "
  • 请输入SQL数据库连接名(本地用local,外地用IP)!
  • "
     End If
     If Trim(Request.Form("BackupSqlName")) = "" Then
      FoundErr = True
      ErrMsg = ErrMsg & "
  • 请输入SQL数据库备份名称!
  • "
     End If
     If Trim(Request.Form("BackupSqlDir")) = "" Then
      FoundErr = True
      ErrMsg = ErrMsg & "
  • 请输入SQL数据库备份目录!
  • "
     End If
    End Sub
    '====================备份SQL数据库=========================
    Sub BackupSqlDatabase()
     On Error Resume Next
     Dim SqlDataName, SqlUserPass, SqlUserID, SqlServer, SqlLoginTimeout
     Dim srv, bak, BackupFilePath, BackupSqlDir, BackupSqlName,BackupFileName
     SqlDataName = Trim(Request.Form("SqlDataName"))
     SqlUserPass = Trim(Request.Form("SqlUserPass"))
     SqlUserID = Trim(Request.Form("SqlUserID"))
     SqlServer = Trim(Request.Form("SqlServer"))
     BackupSqlDir = Trim(Request.Form("BackupSqlDir"))
     BackupSqlName = Trim(Request.Form("BackupSqlName"))
     SqlLoginTimeout = 20 '登陆超时
     CheckSql
     If FoundErr = True Then Exit Sub
     If CheckDir(BackupSqlDir) = False Then
      MakeNewsDir BackupSqlDir
     End If
     BackupFileName = SqlDataName & "_" & Replace(FormatDateTime(now,2), "-", "") & "_" & Replace(FormatDateTime(now,3), ":", "")
     BackupFilePath = BackupSqlDir & "\" & BackupSqlName
     BackupFilePath = Replace(BackupFilePath, "$1", BackupFileName)
     Set srv = Server.CreateObject("SQLDMO.SQLServer")
     srv.LoginTimeout = SqlLoginTimeout
     srv.Connect SqlServer, SqlUserID, SqlUserPass
     Set bak = Server.CreateObject("SQLDMO.Backup")
     bak.Database = SqlDataName
     'bak.Devices = Files
     bak.Files = BackupFilePath
     bak.SQLBackup srv
     If Err.Number>0 Then
      Response.Write Err.Number & "
    "
      Response.Write Err.Description & "
    "
     End If
     Set srv = Nothing
     Set bak = Nothing
     Succeed("
  • SQL数据库备份成功!
  • ")
    End Sub
    '====================恢复SQL数据库=========================
    Sub RestoreSqlDatabase()
     On Error Resume Next
     Dim SqlDataName, SqlUserPass, SqlUserID, SqlServer, SqlLoginTimeout
     Dim srv, rest, BackupFilePath, BackupSqlDir, BackupSqlName, FSO
     SqlDataName = Trim(Request.Form("SqlDataName"))
     SqlUserPass = Trim(Request.Form("SqlUserPass"))
     SqlUserID = Trim(Request.Form("SqlUserID"))
     SqlServer = Trim(Request.Form("SqlServer"))
     BackupSqlDir = Trim(Request.Form("BackupSqlDir"))
     BackupSqlName = Trim(Request.Form("BackupSqlName"))
     SqlLoginTimeout = 20 '登陆超时
     CheckSql
     If FoundErr = True Then Exit Sub
     BackupFilePath = BackupSqlDir & "/" & BackupSqlName
     BackupFilePath = Replace(BackupFilePath, "$1", SqlDataName)
     BackupFilePath = Server.MapPath(BackupFilePath)
     Set FSO = Server.CreateObject("scripting.filesystemobject")
     If FSO.FileExists(BackupFilePath) Then
      Set srv = Server.CreateObject("SQLDMO.SQLServer")
      srv.LoginTimeout = SqlLoginTimeout
      srv.Connect SqlServer, SqlUserID, SqlUserPass
      Set rest = Server.CreateObject("SQLDMO.Restore")
      rest.Action = 0
      rest.Database = SqlDataName
      'rest.Devices = Files
      rest.Files = BackupFilePath
      rest.ReplaceDatabase = True
      rest.SQLRestore srv
      If Err.Number>0 Then
       ErrMsg = ErrMsg & "
  • 备份数据库时发生错误!
  • "
       ErrMsg = ErrMsg & "
  • 错误代码:"
       ErrMsg = ErrMsg & Err.Number & "
  • "
       'Response.Write Err.Number&"
    "
       ErrMsg = ErrMsg &  Err.Description&"
  • "
       FoundErr = True
       Exit Sub
      End If
      Set srv = Nothing
      Set rest = Nothing
      Succeed("
  • SQL数据库恢复成功!
  • ")
     Else
      FoundErr = True
      ErrMsg = "备份目录下并无您的备份文件!"
      Exit Sub
     End If
     Set FSO = Nothing
    End Sub
    %>

    热门栏目