C # operation DTS

xiaoxiao2021-03-06  48

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

}

}

转载请注明原文地址:https://www.9cbs.com/read-81073.html

New Post(0)