Partilhar via


DtsContainer.Execute Método

Definição

Executa o aplicativo, o contêiner ou o pacote como parte de um fluxo de trabalho de pacote.

public:
 override Microsoft::SqlServer::Dts::Runtime::DTSExecResult Execute(Microsoft::SqlServer::Dts::Runtime::Connections ^ connections, Microsoft::SqlServer::Dts::Runtime::Variables ^ variables, Microsoft::SqlServer::Dts::Runtime::IDTSEvents ^ events, Microsoft::SqlServer::Dts::Runtime::IDTSLogging ^ log, System::Object ^ transaction);
public override Microsoft.SqlServer.Dts.Runtime.DTSExecResult Execute (Microsoft.SqlServer.Dts.Runtime.Connections connections, Microsoft.SqlServer.Dts.Runtime.Variables variables, Microsoft.SqlServer.Dts.Runtime.IDTSEvents events, Microsoft.SqlServer.Dts.Runtime.IDTSLogging log, object transaction);
override this.Execute : Microsoft.SqlServer.Dts.Runtime.Connections * Microsoft.SqlServer.Dts.Runtime.Variables * Microsoft.SqlServer.Dts.Runtime.IDTSEvents * Microsoft.SqlServer.Dts.Runtime.IDTSLogging * obj -> Microsoft.SqlServer.Dts.Runtime.DTSExecResult
Public Overrides Function Execute (connections As Connections, variables As Variables, events As IDTSEvents, log As IDTSLogging, transaction As Object) As DTSExecResult

Parâmetros

connections
Connections

A coleção Connections do contêiner.

variables
Variables

A coleção Variables do contêiner.

events
IDTSEvents

Uma interface IDTSEvents para geração de eventos.

log
IDTSLogging

Uma interface IDTSLogging.

transaction
Object

O objeto de transação do qual o contêiner faz parte, dependendo do valor localizado na propriedade TransactionOption. Esse valor pode ser nulo.

Retornos

Uma enumeração DTSExecResult que indica o resultado da execução.

Exemplos

O exemplo de código a seguir mostra como executar um Pacote que herda de EventsProvider, que, por sua vez, herda de DtsContainer. O pacote contém um BulkInsertTask. A tarefa Inserir em Massa é um exemplo para este exemplo de código; qualquer tarefa pode ser criada em seu lugar.

using System;  
using System.Collections.Generic;  
using System.Text;  
using Microsoft.SqlServer.Dts.Runtime;  
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask  

namespace Microsoft.SqlServer.SSIS.Samples  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package p = new Package();  
            p.InteractiveMode = true;  
            p.OfflineMode = true;  
            Executable exec1 = pkg.Executables.Add("STOCK:BulkInsertTask");  
            TaskHost th = exec1 as TaskHost;  

            // Set the CheckConstraints and DataFileType properties.             
            th.Properties["CheckConstraints"].SetValue(th, true);  
            th.Properties["DataFileType"].SetValue(th, DTSBulkInsert_DataFileType.DTSBulkInsert_DataFileType_Native);  

            // Run the package that contains the task.  
            pkg.Execute();  

            // Review the results of the run.  
            if (taskH.ExecutionResult == DTSExecResult.Failure || taskH.ExecutionStatus == DTSExecStatus.Abend)  
                Console.WriteLine("Task failed or abended");  
            else  
                Console.WriteLine("Task ran successfully");  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask  

Namespace Microsoft.SqlServer.SSIS.Samples  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim p As Package =  New Package()   
            p.InteractiveMode = True  
            p.OfflineMode = True  
            Dim exec1 As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask")   
            Dim th As TaskHost =  exec1 as TaskHost   

            ' Set the CheckConstraints and DataFileType properties.  
            th.Properties("CheckConstraints").SetValue(th, True)  
            th.Properties("DataFileType").SetValue(th, DTSBulkInsert_DataFileType.DTSBulkInsert_DataFileType_Native)  

            ' Run the package that contains the task.  
            pkg.Execute()  

            ' Review the results of the run.  
            If taskH.ExecutionResult = DTSExecResult.Failure Or taskH.ExecutionStatus = DTSExecStatus.Abend Then  
                Console.WriteLine("Task failed or abended")  
            Else   
                Console.WriteLine("Task ran successfully")  
            End If  
        End Sub  
    End Class  
End Namespace  

Comentários

O Execute método é herdado por hosts de tarefa e outros objetos da Executable classe abstrata, por meio da DtsContainer classe, e permite que os objetos herdados sejam executados pelo mecanismo de runtime. O Execute método herdado pelos objetos individuais não é comumente usado no código e é recomendável que você chame o Execute método se precisar executar qualquer uma das tarefas ou contêineres no pacote. No entanto, o Execute método está disponível em objetos individuais caso você encontre uma circunstância exclusiva em que ele é necessário.

O principal uso do Execute método é que ele seja herdado e substituído quando você cria uma tarefa personalizada. Para obter mais informações sobre como substituir o método Execute, consulte Codificando uma tarefa personalizada.

O Execute método chama o Validate método implicitamente antes da execução do pacote. Todas as tarefas no pacote são revisadas para as configurações apropriadas durante a validação e todos os objetos no pacote são revisados, incluindo o pacote, contêineres e outros componentes no pacote.

Se não houver nenhum problema encontrado na fase de validação que faça com que o pacote falhe, o objeto de pacote continuará a chamar o Execute método para cada tarefa e objeto no pacote.

Passe null para o transaction parâmetro quando a TransactionOption propriedade for false. Se a TransactionOption propriedade for verdadeira, você poderá passar null o transaction parâmetro para indicar que o contêiner dá suporte a transações, mas não participará.

Aplica-se a