VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "BackupRestore" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = False ' *************************************************************************** ' Copyright (C) 1991-2003 SQLDev.Net ' ' $BeginHeader$ ' ' @file@: BackRestEvent.cls ' @author@: Gert E.R. Drapers (GertD@SQLDev.Net) ' @description@: Example: Using Backup and Restore object with events in SQL-DMO ' @remarks@: ' @created@: 2003-07-29 ' @lastsaved@: 2003-07-29 ' ' update history: ' @version@ @initials@ @updatedate@ @release@ @description@ ' 00000 GED 2003-07-29 v1.0.0.0 created ' ' @EndHeader@ ' *************************************************************************** Option Explicit Private bConnected As Boolean Private oSQLServer As SQLDMO.SQLServer2 Private oBackup As SQLDMO.Backup2 Private oRestore As SQLDMO.Restore2 Dim WithEvents oBackEvents As SQLDMO.Backup2 Attribute oBackEvents.VB_VarHelpID = -1 Dim WithEvents oRestEvents As SQLDMO.Restore2 Attribute oRestEvents.VB_VarHelpID = -1 Private Sub Class_Initialize() ' c'tor bConnected = False Set oSQLServer = Nothing Set oBackup = Nothing Set oRestore = Nothing Set oBackEvents = Nothing Set oRestEvents = Nothing End Sub Private Sub Class_Terminate() ' d'tor If Not oBackEvents Is Nothing Then Set oBackEvents = Nothing If Not oRestEvents Is Nothing Then Set oRestEvents = Nothing If Not oBackup Is Nothing Then Set oBackup = Nothing If Not oRestore Is Nothing Then Set oRestore = Nothing If bConnected Then Me.Disconnect If Not oSQLServer Is Nothing Then Set oSQLServer = Nothing End Sub Public Sub Connect(server As String, user As String, password As String, integrated As Boolean) Debug.Print "Connect " & server On Error GoTo errHandler If bConnected Then Me.Disconnect If oSQLServer Is Nothing Then Set oSQLServer = New SQLDMO.SQLServer2 oSQLServer.LoginSecure = integrated If (integrated) Then oSQLServer.Connect server Else oSQLServer.Connect server, user, password End If bConnected = True Exit Sub errHandler: Debug.Print "Error " & Err.Number & " " & Err.Description Exit Sub End Sub Public Sub Disconnect() Debug.Print "Disconnect" On Error GoTo errHandler If bConnected Then oSQLServer.Disconnect bConnected = False End If Exit Sub errHandler: Debug.Print "Error " & Err.Number & " " & Err.Description Exit Sub End Sub Public Sub DropDatabase(database As String) Debug.Print "DropDatabase & database " On Error GoTo errHandler If Not bConnected Then Err.Raise 9999, "Application", "Not connected" Dim oDatabase As SQLDMO.Database2 Set oDatabase = oSQLServer.Databases(database) If Not oDatabase Is Nothing Then oDatabase.Remove Else Err.Raise 9998, "Application", "database does not exist" End If If Not oDatabase Is Nothing Then Set oDatabase = Nothing Exit Sub errHandler: Debug.Print "Error " & Err.Number & " " & Err.Description Exit Sub End Sub Public Sub BackupDatabaseToFile(database As String, filename As String) Debug.Print "BackupDatabaseToFile " & database & filename On Error GoTo errHandler If Not bConnected Then Err.Raise 9999, "Application", "Not connected" If oBackup Is Nothing Then Set oBackup = New SQLDMO.Backup2 If oBackEvents Is Nothing Then Set oBackEvents = oBackup oBackup.database = database oBackup.Files = filename Call oBackup.SQLBackup(oSQLServer) Set oBackEvents = Nothing Set oBackup = Nothing Exit Sub errHandler: Debug.Print "Error " & Err.Number & " " & Err.Description Exit Sub End Sub Public Sub RestoreDatabaseFromFile(database As String, filename As String) Debug.Print "RestoreDatabaseFromFile " & database & filename On Error GoTo errHandler If Not bConnected Then Err.Raise 9999, "Application", "Not connected" If oRestore Is Nothing Then Set oRestore = New SQLDMO.Restore2 If oRestEvents Is Nothing Then Set oRestEvents = oRestore oRestore.database = database oRestore.Files = filename Call oRestore.SQLRestore(oSQLServer) Set oRestEvents = Nothing Set oRestore = Nothing Exit Sub errHandler: Debug.Print "Error " & Err.Number & " " & Err.Description Exit Sub End Sub Private Sub oBackEvents_Complete(ByVal Message As String) Debug.Print "oBackEvents_Complete(" & Message & ")" End Sub Private Sub oBackEvents_NextMedia(ByVal Message As String) Debug.Print "oBackEvents_NextMedia(" & Message & ")" End Sub Private Sub oBackEvents_PercentComplete(ByVal Message As String, ByVal Percent As Long) Debug.Print "oBackEvents_PercentComplete(" & Message & "," & Percent & ")" End Sub Private Sub oRestEvents_Complete(ByVal Message As String) Debug.Print "oRestEvents_Complete(" & Message & ")" End Sub Private Sub oRestEvents_NextMedia(ByVal Message As String) Debug.Print "oRestEvents_NextMedia(" & Message & ")" End Sub Private Sub oRestEvents_PercentComplete(ByVal Message As String, ByVal Percent As Long) Debug.Print "oRestEvents_PercentComplete(" & Message & "," & Percent & ")" End Sub