COMO: Manipular Data Transformation Services pacote eventos no Visual translation from VPE for Csharp .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 319985
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sumário
Este artigo demonstra como manipular eventos de pacote do DTS (Data Transformation Services) do Microsoft Visual translation from VPE for Csharp .NET.

Com o .NET Framework, não use delegados para manipular eventos com objetos do DTS. Para tratar corretamente os eventos, o aplicativo .NET translation from VPE for Csharp Visual deve implementar as interfaces IConnectionPointContainer e IConnectionPoint . O .NET Framework fornece definições gerenciadas dessas interfaces através de interfaces UCOMIConnectionPointContainer e UCOMIConnectionPoint . Essas interfaces são parte do namespace System.Runtime.InteropServices .

back to the top

Pré-requisitos

Criar um pacote DTS e em seguida, salve-o para o SQL Server antes de inserir o código de exemplo a seguir em um projeto Microsoft Visual translation from VPE for Csharp .NET Console Application.

back to the top

Etapas para usar Visual translation from VPE for Csharp .NET para manipular eventos DTS

O código de exemplo a seguir executa um pacote do DTS armazenado no SQL Server. Quando um evento é acionado, uma mensagem é enviada ao console. Dentro de projeto Visual .NET translation from VPE for Csharp, adicionar uma referência ao objeto Microsoft DTSPackage Object Library versão 2.0 COM e, em seguida, insira o código a seguir no arquivo de classe de seu projeto translation from VPE for Csharp:
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. Then set a reference 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.LoadFromSQLServer("PNXDEVBOX", null, null, DTSSQLServerStorageFlags.DTSSQLStgFlag_UseTrustedConnection, 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.COMException ex)			{				Console.WriteLine("COMException {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 responsible for handling DTS Package events. When an event is fired, a message is sent 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 ProgressCountHigh)		{			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);		}	} }				

back to the top

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 319985 - Última Revisão: 12/07/2015 09:23:59 - Revisão: 4.6

Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2000 64-bit Edition, Microsoft Visual C# .NET 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbhowtomaster KB319985 KbMtpt
Comentários