Click here to Skip to main content
Click here to Skip to main content
Articles » Database » Database » Utilities » Downloads
 
Add your own
alternative version
Go to top

Load and Execute SSIS Packages in Microsoft Windows

, 26 Mar 2010
This article introduces a method to load and execute SSIS packages in Microsoft Windows with a demo WPF application.
CreateSourceAndDestinationForSSISPackage.zip
SSISWindowsLauncher.zip
SampleSSIS
bin
SamplePackage.dtsx
SampleSSIS.database
SampleSSIS.dtproj
SampleSSIS.dtproj.user
SSISWindowsLauncher
bin
Debug
icon_eek.ico
Images
Brittany.jpg
icon_eek.ico
Microsoft.SQLServer.ManagedDTS.dll
obj
Debug
Properties
Settings.settings
SSISWindowsLibrary
bin
Debug
Microsoft.SQLServer.ManagedDTS.dll
obj
Debug
Properties
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;

namespace SSISWindowsLibrary
{
    public enum DTSPackageStatus
    {
        Empty, LoadFailed, Loaded
    };

    public class DTSPackage
    {
        private string _PkgLocation;
        private DTSPackageStatus _Status;
        private Package _Pkg;
        private Microsoft.SqlServer.Dts.Runtime.Application _app;

        public string PkgLocation
        {
            get { return _PkgLocation; }
        }

        public DTSPackageStatus PackageStatus
        {
            get { return _Status; }
        }

        public DTSPackage()
        {
            _PkgLocation = null;
            _Status = DTSPackageStatus.Empty;
            _Pkg = null;
            _app = new Microsoft.SqlServer.Dts.Runtime.Application();
        }

        private void DisposePackage()
        {
            if (_Pkg != null)
            {
                _Pkg.Dispose();
                _Pkg = null;
            }
        }

        public void ClearPackage()
        {
            _PkgLocation = null;
            _Status = DTSPackageStatus.Empty;
            DisposePackage();
        }

        public void LoadPackage(string PkgLocation)
        {
            _PkgLocation = PkgLocation;

            if (PkgLocation != null)
            {
                DisposePackage();
                try
                {
                    _Pkg = _app.LoadPackage(PkgLocation, null);
                    _Status = DTSPackageStatus.Loaded;
                }
                catch
                {
                    _Status = DTSPackageStatus.LoadFailed;
                }
            }
        }

        public void SetPakageConnections(System.Collections.Hashtable ConnectionCollection)
        {
            if (_Status == DTSPackageStatus.Loaded)
            {
                Connections connections = _Pkg.Connections;
                for (int Idex = 0; Idex < connections.Count; Idex++)
                {
                    ConnectionManager connection = connections[Idex];
                    string ConName = connection.Name;

                    if (ConnectionCollection.Contains(ConName))
                    {
                        connection.ConnectionString = ConnectionCollection[ConName].ToString();
                    }
                }
            }
        }

        public System.Collections.Hashtable GetPackageConnections()
        {
            System.Collections.Hashtable ConnectionCollection = new System.Collections.Hashtable();

            if (_Status == DTSPackageStatus.Loaded)
            {
                Connections connections = _Pkg.Connections;
                for (int Idex = 0; Idex < connections.Count; Idex++)
                {
                    ConnectionManager connection = connections[Idex];
                    string ConName = connection.Name;
                    string ConStr = connection.ConnectionString;

                    ConnectionCollection.Add(ConName, ConStr);
                }
            }

            return ConnectionCollection;
        }

        public DTSExecResult Execute()
        {
            return _Pkg.Execute();
        }

        public DTSExecResult Execute(SSISEventListener Listerner)
        {
            return _Pkg.Execute(null, null, Listerner, null, null);
        }

        ~DTSPackage()
        {
            DisposePackage();
        }
    }
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Dr. Song Li

United States United States
I have been working in the IT industry for some time. It is still exciting and I am still learning. I am a happy and honest person, and I want to be your friend.

| Advertise | Privacy | Mobile
Web02 | 2.8.140916.1 | Last Updated 26 Mar 2010
Article Copyright 2010 by Dr. Song Li
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid