Поделиться через


Executables.Add(String) Метод

Определение

Добавляет новый объект контейнера или задачи в коллекцию 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

Параметры

moniker
String

Моникер для исполняемого объекта.

Возвращаемое значение

Объект TaskHost из вновь созданного Executable объекта. Чтобы задать свойства или вызвать методы для нового объекта, можно использовать коллекцию PropertiesTaskHost. Например, чтобы получить свойство из объекта, используйте th. Properties["propertyname"]. GetValue(th)). Чтобы задать свойство, используйте th. Properties["propertyname"]. SetValue(th, <value>);. InnerObjectTaskHost Приведение класса задачи к классу задач. Например, чтобы привести задачу массовой вставки в BulkInsertTask после добавления в пакет в качестве Executable пакета и последующего приведения к ней TaskHost, используйте BulkInsertTask myTask = th. InnerObject как BulkInsertTask;. Использование класса в коде TaskHost без приведения к классу для конкретной задачи имеет следующие преимущества: TaskHostProperties поставщик не требует ссылки на сборку в коде. Можно разрабатывать код общих подпрограмм, способных работать в любой задаче, поскольку нет необходимости знать имя задачи во время компиляции. Такие общие подпрограммы могут представлять собой методы, в которых имя задачи передается методу, а код метода работает для всех задач. Это хороший метод написания тестового кода. Приведение из класса для конкретной TaskHost задачи имеет следующие преимущества: проект Visual Studio обеспечивает завершение инструкции (IntelliSense). Код может работать быстрее. Создает объекты с ранними привязками. Дополнительные сведения о ранней и поздней привязке см. в разделе "Ранние и поздние привязки" в концепциях языка Visual Basic. В зависимости от потребностей объект может быть приведен к определенному классу.

Примеры

В следующем примере кода задача "Массовая вставка" добавляется в пакет в качестве исполняемого файла.

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  

Образец вывода:

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

Комментарии

Используйте Add при создании контейнера или задачи и хотите добавить его в коллекцию Executables . Параметр метода представляет собой строку, которая может быть CLSID, PROGID, моникер STOCK или CreationName свойство TaskInfo объекта. Метод возвращает TaskHost объект вновь созданной задачи в качестве Executable объекта. Дополнительные сведения см. в разделе Добавление задачи или контейнера в поток управления или удаление их из него.

Применяется к