DMQueryTask.Execute Método

Definição

Executa a tarefa.

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

Parâmetros

connections
Connections

Uma coleção de conexões usada pela tarefa.

variables
VariableDispenser

Um objeto VariableDispenser para variáveis de bloqueio.

events
IDTSComponentEvents

Um objeto que implementa a interface do IDTSComponentEvents.

log
IDTSLogging

Um objeto que implementa a interface do IDTSLogging.

txn
Object

O objeto de transação do qual o contêiner faz parte. Esse valor pode ser nulo.

Retornos

Um valor da enumeração DTSExecResult.

Exemplos

O exemplo de código a seguir mostra como executar um pacote que contém um BulkInsertTask após algumas das propriedades da tarefa serem definidas. 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 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