Lenguaje

Executables.Add(String) Método

Definición

Añade un nuevo contenedor u objeto de tarea a la Executables colección.

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

El apodo del ejecutable.

Devoluciones

Un TaskHost objeto del objeto recién creado Executable . Para establecer propiedades o llamar a métodos en el nuevo objeto, tienes dos opciones: Utiliza la Properties colección de los TaskHost. Por ejemplo, para obtener una propiedad del objeto, usa th. Propiedades["nombre de propiedad"]. GetValue(th)). Para establecer una propiedad, usa th. Propiedades["nombre de propiedad"]. ValorConjunto(th, <valor>);. Lanza el InnerObject de la TaskHost a la clase de tarea. Por ejemplo, para convertir la tarea Bulk Insert a BulkInsertTask a después de haberse añadido a un paquete como an Executable y posteriormente lanzado a un TaskHost, usar BulkInsertTask myTask = th. InnerObject como BulkInsertTask;. Usar la TaskHost clase en código sin hacer cast a la clase específica de la tarea tiene estas ventajas: El TaskHostProperties proveedor no requiere una referencia al ensamblador en el código. Puedes programar rutinas genéricas que funcionen para cualquier tarea, porque no tienes que saber el nombre de la tarea en momento de compilación. Estas rutinas genéricas pueden ser métodos en los que pasas el nombre de la tarea al método, y el código del método funciona para todas las tareas. Este es un buen método para escribir código de prueba. Convertir desde la TaskHost a la clase específica de la tarea tiene las siguientes ventajas: El proyecto Visual Studio te proporciona completación de sentencias (IntelliSense). El código puede funcionar más rápido. Produce objetos enlazados temprano Para más información sobre enlazamiento temprano y tardío, véase Enlazamiento temprano y tardío en Visual Basic Language Concepts. Dependiendo de tus necesidades, puedes o no convertir el objeto en su clase específica de la tarea.

Ejemplos

El siguiente ejemplo de código añade la tarea Inserción Masiva como ejecutable al paquete.

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  

Salida de muestra:

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

Comentarios

Úsalo Add cuando crees un nuevo contenedor o tarea y quieras añadirlo a la Executables colección. El parámetro del método es una cadena, que puede ser el nombre CLSID, PROGID, STOCK o CreationName propiedad del TaskInfo objeto. El método devuelve el TaskHost objeto de la tarea recién creada como un Executable objeto. Para más información, vea Agregar o eliminar tareas o contenedores en un flujo de control.

Se aplica a