我用VB编写了一程序,现在希望有备份/恢复 功能  ,主要是 备份/恢复 access 数据库 和许多的文件(数量和占用空间都很大)  想还有增量备份/恢复  的功能,最终要刻录成光盘。还要从光盘恢复 一直没有好的思路,请问大家是否有好的想法。

解决方案 »

  1.   

    看错了.是要求增量的.
    那你就记SQL语句得了,把数据转为SQL语句保存起来.
    或者把数据导到xml文件中,恢复时再导回来.
      

  2.   

    "把数据转为SQL语句保存起来.或者把数据导到xml文件中" 这句话不太理解,能详细些吗?我备份的主要问题是ACCESS的数据库倒是不大也就20M 吧,关键是我的数据库连接的文件很大很多,每一个文件差不多1M  大约有几个G到十几个G的数据量,(很重要就定期备份)这个是主要问题,还有主要的是如何生成刻盘文件 和刻成dvd  并且还得考虑恢复,现在还没有头绪。
      

  3.   

    希望对你有用
    http://www.chenoe.com/PlanTasks
      

  4.   

    Public Function ParseLoggicFiles(BakFile As String, DataFile As String, LogFile As String, Optional LogicLogFile As String, Optional logicDataFile As String)
            On Error GoTo errhandler
            Dim tempRec As ADODB.Recordset
            Set tempRec = DoQuery("RESTORE FILELISTONLY FROM DISK = '" & BakFile & "'")
            While Not tempRec.EOF
                  If tempRec.Fields("type").Value = "D" Then 'ハヌハセンホトシ
                     logicDataFile = tempRec.Fields("LogicalName").Value
                     DataFile = tempRec.Fields("physicalname").Value
                  ElseIf tempRec.Fields("type").Value = "L" Then 'ハヌネユヨセホトシ
                     LogicLogFile = tempRec.Fields("LogicalName").Value
                     LogFile = tempRec.Fields("physicalname").Value
                  End If
                  tempRec.MoveNext
            Wend
            Exit Function
    errhandler:
    End Function
      

  5.   

    Public Sub restoreDb(SourceBackupfile As String, DbName As String, ObjDataFile As String, ObjLogfile As String)
          Dim RestoreStr As String
          Dim i As Integer
          Dim logicDataFile As String, LogicLogFile As String
          Dim tempDataFile As String, TempLogFile As String
          
          ParseLoggicFiles SourceBackupfile, tempDataFile, TempLogFile, LogicLogFile, logicDataFile
          
          RestoreStr = "restore database " & DbName & " from disk='" & SourceBackupfile & "' with REPLACE,move '" & logicDataFile & "' to '" & ObjDataFile & "',move '" & LogicLogFile & "' to '" & ObjLogfile & "'"
          
          ConductConn cn, True
          MyGetConnection.Execute RestoreStr
          
          Screen.MousePointer = vbDefault
          MsgBox "ハセンソ篏ヨクエウノケヲ", vbOKOnly + vbInformation
    End Sub
      

  6.   

    调用备份的过程:
    call        restoreDb Trim(Me.txtSourceBackupFile.text), Trim(Me.txtObjDbName.text), Trim(Me.txtObjDataFile.text), Trim(Me.txtObjLogFile.text)
      

  7.   

    '单击databasebak备份数据库
    Private Sub databasebak_Click()
    Set fsofile = CreateObject("scripting.filesystemobject")
    CommonDialog1.Filter = "mdb文件(*.mdb)|*.mdb"
    CommonDialog1.ShowSave
    fsofile.copyfile App.Path & "\book.mdb", CommonDialog1.FileTitle
    End Sub
    '单击databaserecover恢复数据库
    Private Sub databaserecover_Click()
    Set fsofile = CreateObject("scripting.filesystemobject")
    CommonDialog1.Filter = "mdb文件(*.mdb)|*.mdb"
    CommonDialog1.ShowOpen
    fsofile.copyfile CommonDialog1.FileTitle, App.Path & "\house.mdb"
    End Sub