|
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.
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.