Программный поиск компонентов потока данных
После добавления задачи потока данных в пакет может возникнуть необходимость определить, какие компоненты потока данных доступны для использования. Можно программным способом выявить источники, преобразования и назначения потока данных, установленные и доступные на локальном компьютере. Сведения о добавлении задачи потока данных в пакет см. в разделе Добавление задачи потока данных программным образом.
Поиск компонентов
Класс Application предоставляет коллекцию PipelineComponentInfos, содержащую объект PipelineComponentInfo для каждого компонента, правильно установленного на локальном компьютере. Каждый объект PipelineComponentInfo содержит сведения о компоненте, в частности, его имя, описание и время создания. Можно использовать значение, возвращаемое в свойстве CreationName, чтобы задать свойство ComponentClassID IDTSComponentMetaData100 при добавлении компонента в пакет.
Следующий шаг
Следующим шагом после выявления доступных компонентов является добавление и настройка компонентов, которые рассматриваются в следующем разделе, Добавление компонентов потока данных программным образом.
Образец
В следующем образце кода показано, как перечислить коллекцию PipelineComponentInfos объекта Application, чтобы программным способом определить компоненты потока данных, доступные на локальном компьютере. Этому образцу требуется ссылка на сборку Microsoft.SqlServer.ManagedDTS.
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace Microsoft.SqlServer.Dts.Samples
{
class Program
{
static void Main(string[] args)
{
Application application = new Application();
PipelineComponentInfos componentInfos = application.PipelineComponentInfos;
foreach (PipelineComponentInfo componentInfo in componentInfos)
{
Console.WriteLine("Name: " + componentInfo.Name + "\n" +
" CreationName: " + componentInfo.CreationName + "\n");
}
Console.Read();
}
}
}
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim application As Application = New Application()
Dim componentInfos As PipelineComponentInfos = application.PipelineComponentInfos
For Each componentInfo As PipelineComponentInfo In componentInfos
Console.WriteLine("Name: " & componentInfo.Name & vbCrLf & _
" CreationName: " & componentInfo.CreationName & vbCrLf)
Next
Console.Read()
End Sub
End Module
|