现在的位置: 首页 > 综合 > 正文

SQL数据备份和恢复模块

2013年10月18日 ⁄ 综合 ⁄ 共 3521字 ⁄ 字号 评论关闭

这是我的数据备份和恢复模块 
Option Explicit
  Public conn As New ADODB.Connection '数据库连接变量
  Private WithEvents objBackup       As SQLDMO.Backup
  Private WithEvents objRestore       As SQLDMO.Restore
  Public isql As String
   
  Private Sub cmdBackup_Click() '备份按钮
          Dim objSQLServer     As New SQLDMO.SQLServer
          Dim strServer     As String
          Dim strUserID     As String
          Dim strPassword     As String
          Dim strDatabase     As String
          Dim strFile     As String
           
          strServer = "127.0.0.1"
          strUserID = "sa"
          strPassword = ""
          strDatabase = "lifei"
          strFile = App.Path & "/数据备份/bak"
           
          If Dir(strFile) <> "" Then
                  If MsgBox("文件" & strFile & "已存在,是否删除?", vbQuestion + vbYesNo) = vbYes Then
                          Kill strFile
                  Else
                          Exit Sub
                  End If
          End If
           
          lblProgress.Caption = "备份进度:   0%"
          Screen.MousePointer = 11
           
          On Error GoTo ErrorHandler
           
          objSQLServer.Connect strServer, strUserID, strPassword
           
          Set objBackup = New SQLDMO.Backup
          With objBackup
                  .PercentCompleteNotification = 1
                  .Database = strDatabase
                  .Files = strFile
                  .SQLBackup objSQLServer
          End With
          Set objBackup = Nothing
           
          objSQLServer.Close
          Set objSQLServer = Nothing
           
          Screen.MousePointer = 0
          Exit Sub
           
ErrorHandler:
          Screen.MousePointer = 0
          MsgBox Err.Description, vbCritical
  End Sub
   
  Private Sub cmdRestore_Click()
 
          Dim objSQLServer     As New SQLDMO.SQLServer
          Dim strServer     As String
          Dim strUserID     As String
          Dim strPassword     As String
          Dim strDatabase     As String
          Dim strFile     As String
           
          strServer = "127.0.0.1"
          strUserID = "sa"
          strPassword = ""
          strDatabase = "lifei"
          strFile = App.Path & "/数据备份/bak"
           
          If Dir(strFile) = "" Then
                  MsgBox "文件" & strFile & "不存在!", vbExclamation
                  Exit Sub
          End If
           
          lblProgress.Caption = "恢复进度:   0%"
          Screen.MousePointer = 11
           
          On Error GoTo ErrorHandler
           
          objSQLServer.Connect strServer, strUserID, strPassword
           
          Set objRestore = New SQLDMO.Restore
          With objRestore
                  .PercentCompleteNotification = 1
                  .Database = strDatabase
                  .ReplaceDatabase = True
                  .Files = strFile
                  .SQLRestore objSQLServer
          End With
          Set objRestore = Nothing
           
          objSQLServer.Close
          Set objSQLServer = Nothing
           
          Screen.MousePointer = 0
          Exit Sub
           
ErrorHandler:
          Screen.MousePointer = 0
          MsgBox Err.Description, vbCritical
  End Sub
   
Private Sub Command1_Click()
Unload Me
End Sub

Private Sub Form_Unload(Cancel As Integer)
If conn.State <> 0 Then
        conn.Close
        Set conn = Nothing
    End If
End Sub

  Private Sub objBackup_Complete(ByVal Message As String)
          lblProgress.Caption = "备份成功!"
          Set objBackup = Nothing
  End Sub
   
  Private Sub objBackup_PercentComplete(ByVal Message As String, ByVal Percent As Long)
          lblProgress.Caption = "备份进度:   " & Percent & "%"
          DoEvents
  End Sub
   
  Private Sub objRestore_Complete(ByVal Message As String)
          lblProgress.Caption = "恢复成功!"
          Set objRestore = Nothing
  End Sub
   
  Private Sub objRestore_PercentComplete(ByVal Message As String, ByVal Percent As Long)
          lblProgress.Caption = "恢复进度:   " & Percent & "%"
          DoEvents
  End Sub

 

抱歉!评论已关闭.