The following code example shows a function loading a package in one format and saving it in another:
Enum eDTSPkgFormat
REPOSITORY
SQL_SERVER
STORAGE_FILE
End Enum
Public Function blnCopyDTSPackage( _
ByVal strReposServerName As String, ByVal strReposDBName As String, _
ByVal strReposUserName As String, ByVal strReposPassword As String, _
ByVal blnReposNTAuth As Boolean, ByVal strSQLServerName As String, _
ByVal strSQLSvUserName As String, ByVal strSQLSvPassword As String, _
ByVal blnSQLSvNTAuth As Boolean, ByVal strPackageID As String, _
ByVal strPackageVerID As String, ByVal strPackageName As String, _
ByVal strPkgOwnerPwd As String, ByVal strPkgUserPwd As String, _
ByVal strPkgUNCPath As String, ByVal dpfPkgSource As eDTSPkgFormat, _
ByVal dpfPkgDestination As eDTSPkgFormat) As Boolean
'Copy the DTS package source to the destination format.
Dim objPackage As DTS.Package2
Dim rsfFlags As DTS.DTSRepositoryStorageFlags
Dim ssfFlags As DTS.DTSSQLServerStorageFlags
Dim strPhase As String 'load/save phase for error msg
On Error GoTo ErrorHandler
'Copying the source to the destination in the same format is not supported.
If dpfPkgSource = dpfPkgDestination Then
MsgBox "Same format for source and destination not supported", _
vbExclamation
Exit Function
End If
'Create the package object and calculate the storage flags.
Set objPackage = New DTS.Package
rsfFlags = IIf(blnReposNTAuth, DTSReposFlag_UseTrustedConnection, _
DTSReposFlag_Default)
ssfFlags = IIf(blnSQLSvNTAuth, DTSSQLStgFlag_UseTrustedConnection, _
DTSSQLStgFlag_Default)
'Load the package from the specified storage type.
strPhase = "loading"
Select Case dpfPkgSource
Case REPOSITORY
objPackage.LoadFromRepository _
strReposServerName, strReposDBName, strReposUserName, _
strReposPassword, strPackageID, strPackageVerID, _
strPackageName, rsfFlags
Case SQL_SERVER
objPackage.LoadFromSQLServer _
strSQLServerName, strSQLSvUserName, strSQLSvPassword, _
ssfFlags, strPkgOwnerPwd, strPackageID, _
strPackageVerID, strPackageName
Case STORAGE_FILE
objPackage.LoadFromStorageFile _
strPkgUNCPath, strPkgOwnerPwd, strPackageID, _
strPackageVerID, strPackageName
End Select
'Save the package to the specified storage type.
strPhase = "saving"
Select Case dpfPkgDestination
Case REPOSITORY
objPackage.SaveToRepository _
strReposServerName, strReposDBName, strReposUserName, _
strReposPassword, rsfFlags
Case SQL_SERVER
objPackage.SaveToSQLServer _
strSQLServerName, strSQLSvUserName, strSQLSvPassword, _
ssfFlags, strPkgOwnerPwd, strPkgUserPwd
Case STORAGE_FILE
objPackage.SaveToStorageFile _
strPkgUNCPath, strPkgOwnerPwd, strPkgUserPwd
End Select
blnCopyDTSPackage = True
Exit Function
ErrorHandler:
MsgBox "Error " & strPhase & " DTS package: 0x" & Hex(Err.Number) & _
vbCrLf & Err.Description, vbExclamation
Exit Function
End Function