Descobrindo componentes de fluxo de dados programaticamente
Depois de adicionar uma tarefa de fluxo de dados a um pacote, sua próxima etapa será determinar os componentes de fluxo de dados que estarão disponíveis para uso. Você pode descobrir programaticamente as fontes de fluxo de dados, as transformações e os destinos instalados e disponíveis no computador local. Para obter informações sobre como acrescentar uma tarefa de fluxo de dados ao pacote, consulte Adicionando a tarefa Fluxo de Dados programaticamente.
Descobrindo componentes
A classe Application fornece a coleção PipelineComponentInfos que contém um objeto PipelineComponentInfo para cada componente corretamente instalado no computador local. Cada PipelineComponentInfo contém informações sobre um componente, como seu nome, sua descrição e seu nome de criação. É possível usar o valor retornado na propriedade CreationName para definir a propriedade ComponentClassID do IDTSComponentMetaData100 quando um componente for adicionado a um pacote.
Próxima Etapa
Depois de descobrir quais são os componentes disponíveis, a próxima etapa será adicionar e configurá-los, assunto que será discutido no próximo tópico, Adicionando componentes de fluxo de dados programaticamente.
Exemplo
O exemplo de código a seguir mostra como enumerar a coleção PipelineComponentInfos do objeto Application para descobrir programaticamente os componentes de fluxo de dados disponíveis no computador local. Este exemplo requer uma referência para o assembly 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
Recursos externos
Entrada de blog, CreationName para SSIS 2008 e Adicionando componentes programaticamente (http://sqlis.com/sqlis/post/CreationName-2008.aspx) no sqlis.com.
Entrada de blog, EzAPI – Alternative package creation API, em blogs.msdn.com.
|