Compartilhar via


Executable.Execute Método

Definição

Executa o executável.

public:
 abstract 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 abstract 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);
abstract member 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 MustOverride Function Execute (connections As Connections, variables As Variables, events As IDTSEvents, log As IDTSLogging, transaction As Object) As DTSExecResult

Parâmetros

connections
Connections

Uma coleção de Connections.

variables
Variables

Uma coleção de Variables.

events
IDTSEvents

Uma interface IDTSEvents para geração de eventos.

log
IDTSLogging

Uma interface IDTSLogging.

transaction
Object

O identificador para um tipo de transação se estiver participando em uma transação. Esse valor pode ser nulo.

Retornos

Retorna um valor da enumeração DTSExecResult que indica o sucesso, a falha ou outro status do processo do executável.

Exemplos

O exemplo de código a seguir mostra como executar um pacote que herda da Executable classe por meio da DtsContainer classe. 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 dessa 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 onde 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 do 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 participa.

Aplica-se a