Compartilhar via


Executables.Add(String) Método

Definição

Adiciona um novo objeto de tarefa ou contêiner à coleção Executables.

public:
 Microsoft::SqlServer::Dts::Runtime::Executable ^ Add(System::String ^ moniker);
public Microsoft.SqlServer.Dts.Runtime.Executable Add (string moniker);
member this.Add : string -> Microsoft.SqlServer.Dts.Runtime.Executable
Public Function Add (moniker As String) As Executable

Parâmetros

moniker
String

O moniker para o executável.

Retornos

Um TaskHost objeto do objeto recém-criado Executable . Para definir propriedades ou chamar métodos no novo objeto, você tem duas opções:Usar a Properties coleção do TaskHost. Por exemplo, para obter uma propriedade do objeto, use th. Properties["propertyname"]. GetValue(th)). Para definir uma propriedade, use th. Properties["propertyname"]. SetValue(th, <value>);. Converta o InnerObjectTaskHost da classe de tarefa. Por exemplo, para converter a tarefa Inserção em Massa em um BulkInsertTask após ela ter sido adicionada a um pacote como um Executable e posteriormente convertido em um TaskHost, use BulkInsertTask myTask = th. InnerObject como BulkInsertTask;. O uso da TaskHost classe no código sem a conversão para a classe específica da tarefa tem essas vantagens: o TaskHostProperties provedor não requer uma referência ao assembly no código. Você pode criar rotinas com código genérico que funcionam para qualquer tarefa, pois você não precisa saber o nome da tarefa no momento de compilação. Essas rotinas genéricas podem ser métodos em que você passa o nome da tarefa para o método e o código do método funciona para todas as tarefas. Esse é um bom método para escrever código de teste. A conversão da TaskHost classe específica para a tarefa tem as seguintes vantagens:o projeto do Visual Studio fornece o intelliSense (conclusão da instrução). O código pode ser executado mais rápido. Produz objetos com limite inicial Para obter mais informações sobre associação precoce e tardia, consulte Associação Antecipada e Tardia em Conceitos de Linguagem do Visual Basic. Dependendo de suas necessidades, você pode ou não converter o objeto em sua classe específica de tarefa.

Exemplos

O exemplo de código a seguir adiciona a tarefa Inserção em Massa como um executável ao pacote.

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

namespace Executables_API  
{  
        class Program  
        {  
        static void Main(string[] args)  
        {  
            Package pkg = new Package();  
            Executable exec = pkg.Executables.Add("STOCK:BulkInsertTask");  

            // Obtain the collection.  
            Executables pgkExecs = pkg.Executables;  
            foreach (Executable eachExec in pgkExecs)  
            {  
                TaskHost th = exec as TaskHost;  
                Console.WriteLine("Executable creation name is: {0}", th.CreationName);  
            }  
                        // Show that at least one executable exists.  
            if (pgkExecs.Contains(0))  
            {  
                Console.WriteLine("Contains returned true");  
            }  
            else  
            {  
                Console.WriteLine("Contains returned false");  
            }  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text  
Imports Microsoft.SqlServer.Dts.Runtime  

Namespace Executables_API  
        Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim pkg As Package =  New Package()   
            Dim exec As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask")   

            ' Obtain the collection.  
            Dim pgkExecs As Executables =  pkg.Executables   
            Dim eachExec As Executable  
            For Each eachExec In pgkExecs  
                Dim th As TaskHost =  exec as TaskHost   
                Console.WriteLine("Executable creation name is: {0}", th.CreationName)  
            Next  
                        ' Show that at least one executable exists.  
            If pgkExecs.Contains(0) Then  
                Console.WriteLine("Contains returned true")  
            Else   
                Console.WriteLine("Contains returned false")  
            End If  
        End Sub  
        End Class  
End Namespace  

Saída de exemplo:

Executable creation name is: Microsoft.SqlServer.Dts.Tasks.BulkInsertTask.BulkInsertTask, Microsoft.SqlServer.BulkInsertTask, Version=10.0.000.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91

Contains returned true

Comentários

Use Add quando criar um novo contêiner ou tarefa e quiser adicioná-lo à Executables coleção. O parâmetro de método é uma cadeia de caracteres, que pode ser o CLSID, PROGID, stock moniker ou CreationName propriedade do TaskInfo objeto. O método retorna o TaskHost objeto da tarefa recém-criada como um Executable objeto. Para obter mais informações, consulte Adicionar ou excluir uma tarefa ou um contêiner em um fluxo de controle.

Aplica-se a