In The C # Class File for your project:
Using system;
Using system.Runtime.InteropServices;
Using DTS;
Namespace DTSInterop
{
// this class loads and executes the dts package.
Class ExecpkGwithevents
{
/ * Prior to Running this Code, Create A DTS Package and Save It To SQL Server. The set a reason to TO
// The DTsPackage Object Library Version 2.0 COM Object.
* /
Public package2class package;
[Mtathread]
Static void main (string [] args)
{
EXECPKGWITHEVENTS APP = New EXECPKGWITHEVENTS ();
app.run ();
}
Public void Run ()
{
Try
{
Package = new package2class ();
UcomiconnectionPointContainer CNNCTPTCONT = (UcomiconnectionPointContainer) Package;
UcomiconnectionPoint CNNCTPT;
PackageEventsSink PES = new packageeventssink ();
Guid Guid = New GUID ("10020605-EB1C-11CF-AE6E-00Aa004A34D5"); // UUID of PackageEvents Interface
CNNCTPTCONT.FINDCONNECTIONPOINT (REF GUID, OUT CNNCTPT);
Int iCookie;
CNNCTPT.ADVISE (PES, OUT ICOOKIE);
Object pvarpersiststgofhost = null;
Package.Loadfromsql Server ("Pnxdevbox", Null, Null, DTSSQLServerStorageFlags.dtsqlstgflag_usethrustedConnection, Null,
NULL, NULL, "TEST", Ref pvarpersistStgofhost;
Package.execute ();
Package.unInitialize ();
Package = NULL;
CNNCTPT.UNADVISE (ICOOKIE); // a connection That is created by iconnectionpoint.advise must be closed by calling iconnectionPoint.unadvise to Avoid A Memory Leak
}
Catch (System.Runtime.InterOpServices.com ).com.Comexception EX)
{
Console.writeline ("comXception {0} / n {1} / n {2}", ex. errorcode, ex.Message, ex.stacktrace;
}
Catch (System.exception EX)
{
Console.writeline ("exception / n {0} / n {1}", ex.Message, EX.STACKTRACE;
}
}
}
// this class is responsole for handling DTS Package Events. When An Event IS Fired, a message issent to // the console.
Class PackageEventsSink: dts.packageevents
{
Public void ONQueryCancel (String Eventsource, Ref Bool Pbcancel)
{
Console.writeline ("ONQUERYCANCEL ({0})", EventSource
PBCANCEL = FALSE;
}
Public void onstart (String Eventsource)
{
Console.WriteLine ("OnStart ({0})", EventSource
}
Public Void Onprogress (String Eventsource, String ProgressDescription, Int Percentcomplete, Int ProgressCountLow, Int ProgressCouNithigh)
{
Console.writeline ("OnProgress ({0}, {1}, {2}, {3}, {4})", Eventsource, ProgressDescription,
Percentcomplete, ProgressCountLow, ProgressCountHigh;
}
Public Void Onerror (String Eventsource, Int ErrorCode, String Source, String Description, String HelpFile, Int HelpContext, String
IDofinterfacewitherror, ref bool pbcancel)
{
Console.writeline ("OneRror ({0}, {1}, {2}, {3}, {4}, {5}), Eventsource, ErrorCode, Source, Description,
HelpFile, HelpContext);
PBCANCEL = FALSE;
}
Public void onfinish (String Eventsource)
{
Console.writeline ("Onfinish ({0})", EventSource
}
}