VERSION 1.0 CLASS BEGIN MultiUse = -1 'True Persistable = 0 'NotPersistable DataBindingBehavior = 0 'vbNone DataSourceBehavior = 0 'vbNone MTSTransactionMode = 0 'NotAnMTSObject END Attribute VB_Name = "TransferDatabase" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = True Attribute VB_PredeclaredId = False Attribute VB_Exposed = False ' *************************************************************************** ' Copyright (C) 1991-2003 SQLDev.Net ' ' $BeginHeader$ ' ' @file@: TransferEvent.cls ' @author@: Gert E.R. Drapers (GertD@SQLDev.Net) ' @description@: Example: Using the Transfer 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 oTransfer As SQLDMO.Transfer2 Dim WithEvents oTransferEvents As SQLDMO.Transfer2 Attribute oTransferEvents.VB_VarHelpID = -1 Private Sub Class_Initialize() ' c'tor bConnected = False Set oSQLServer = Nothing Set oTransfer = Nothing Set oTransferEvents = Nothing End Sub Private Sub Class_Terminate() ' d'tor If Not oTransferEvents Is Nothing Then Set oTransferEvents = Nothing If Not oTransfer Is Nothing Then Set oTransfer = 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 TransferDatabaseToServer(src_database As String, server As String, user As String, password As String, integrated As Boolean, dst_database As String) Debug.Print "TransferDatabaseToServer(" & src_database & ", " & server & ", " & user & ", " & password & ", " & integrated & ", " & dst_database & ")" On Error GoTo errHandler If oTransfer Is Nothing Then Set oTransfer = New SQLDMO.Transfer2 If oTransferEvents Is Nothing Then Set oTransferEvents = oTransfer Dim oDatabase As SQLDMO.Database2 Set oDatabase = oSQLServer.Databases(src_database) With oTransfer .DestServer = server .DestLogin = user .DestPassword = password .DestDatabase = dst_database .DestUseTrustedConnection = integrated .CopySchema = True .CopyAllObjects = True .CopyAllDefaults = True .CopyAllFunctions = True .CopyAllRules = True .CopyAllStoredProcedures = True .CopyAllTables = True .CopyAllTriggers = True .CopyAllUserDefinedDatatypes = True .CopyAllViews = True .CopyData = SQLDMOCopyData_Replace .DropDestObjectsFirst = True .IncludeDependencies = True .IncludeDB = True .IncludeLogins = True .IncludeUsers = True .ScriptType = SQLDMOScript_Default .Script2Type = SQLDMOScript2_Default .SourceTranslateChar = False .UseCollation = False .UseDestTransaction = False End With Call oDatabase.Transfer(oTransfer) If Not oDatabase Is Nothing Then Set oDatabase = Nothing Exit Sub errHandler: Debug.Print "Error " & Err.Number & " " & Err.Description Exit Sub End Sub Private Sub oTransferEvents_PercentCompleteAtStep(ByVal Message As String, ByVal Percent As Long) Debug.Print "oTransferEvents_PercentCompleteAtStep(" & Message & ", " & Percent & ")" End Sub Private Sub oTransferEvents_ScriptTransferPercentComplete(ByVal Message As String, ByVal Percent As Long) Debug.Print "oTransferEvents_ScriptTransferPercentComplete(" & Message & ", " & Percent & ")" End Sub Private Sub oTransferEvents_StatusMessage(ByVal Message As String) Debug.Print "oTransferEvents_StatusMessage(" & Message & ")" End Sub Private Sub oTransferEvents_TransferPercentComplete(ByVal Message As String, ByVal Percent As Long) Debug.Print "oTransferEvents_TransferPercentComplete(" & Message & ", " & Percent & ")" End Sub