Comparando a tarefa Script e o componente Script

A tarefa Script, disponível na janela Fluxo de Controle do designer Integration Services, e o componente Script, disponível na janela Fluxo de Dados, têm finalidades bem distintas em um pacote do Integration Services. A tarefa é uma ferramenta de fluxo de controle de uso general, enquanto o componente serve como uma origem, transformação ou destino no fluxo de dados. Apesar das diferentes finalidades, a tarefa Script e o componente Script possuem algumas semelhanças nas ferramentas de codificação que eles usam e nos objetos do pacote que são disponibilizados para o desenvolvedor. A compreensão dessas semelhanças e diferenças pode ajudá-lo a usar a tarefa e o componente de forma mais eficaz.

Semelhanças entre a tarefa Script e o componente Script

A tarefa Script e o componente Script compartilham os recursos em comum a seguir.

Recurso

Descrição

Dois modos de design-tempo

Na tarefa e no componente, você começa especificando propriedades no editor e, depois, alterna para o ambiente de desenvolvimento para escrever código.

MicrosoftVisual Studio Tools for Applications (VSTA)

A tarefa e o componente usam o mesmo VSTA IDE e dão suporte ao código escrito em MicrosoftVisual Basic 2008 ou MicrosoftVisual C# 2008.

Scripts pré-compilados

No SQL Server 2008 Integration Services (SSIS), todos os scripts são pré-compilados. Em versões anteriores, você podia especificar se os scripts foram pré-compilados.

O script é pré-compilado em código binário, permitindo maior rapidez na execução, mas isso resulta no aumento do tamanho do pacote.

Diferenças entre a tarefa Script e o componente Script

Convém destacar as diferenças a seguir entre a tarefa Script e o componente Script.

Recurso

Tarefa Script

Componente Script

Fluxo de controle / Fluxo de dados

A tarefa Script é configurada na guia Fluxo de Controle do designer e é executada fora do fluxo de dados do pacote.

O componente Script é configurado na página Fluxo de Dados do designer e representa uma origem, transformação ou destino na tarefa Fluxo de Dados.

Finalidade

Uma tarefa Script pode realizar praticamente qualquer tarefa para fins gerais.

Especifique se você deseja criar uma origem, transformação ou destino com o componente Script.

Execução

Uma tarefa Script executa código personalizado em algum ponto no fluxo de trabalho do pacote. A menos que você coloque isso em um contêiner de loop ou em um manipulador de eventos, ele só será executado uma vez.

Um componente Script também é executado uma vez, mas costuma executar sua rotina de processamento principal uma vez para cada linha de dados do fluxo de dados.

Editor

O Editor da Tarefa Script contém três páginas: Geral, Script e Expressões. Apenas as propriedades ReadOnlyVariables, ReadWriteVariables e ScriptLanguage afetam diretamente o código que você pode escrever.

O Editor de Transformação Scripts contém no máximo quatro páginas: Colunas de Entrada, Entradas e Saídas, Script e Gerenciadores de Conexões. Os metadados e propriedades que você configura em cada uma dessas páginas determinam os membros das classes base que são gerenciadas automaticamente para seu uso na codificação.

Interação com o pacote

No código escrito para uma tarefa Script, você usa a propriedade Dts para acessar outros recursos do pacote. A propriedade Dts é um membro da classe ScriptMain.

No código do componente Script, você usa propriedades de acessador tipado para acessar determinados recursos do pacote, tais como variáveis e gerenciadores de conexões.

O método PreExecute só pode acessar variáveis somente leitura. O método PostExecute pode acessar variáveis somente leitura e de leitura/gravação.

Para obter mais informações sobre esses métodos, consulte Codificando e depurando o componente Script.

Usando variáveis

A tarefa Script usa a propriedade Variables do objeto Dts para acessar variáveis que estão disponíveis através das propriedades ReadOnlyVariables e ReadWriteVariables da tarefa. Por exemplo:

O componente Script usa propriedades do acessador tipado da classe base gerada automaticamente, criada a partir das propriedades ReadOnlyVariables e ReadWriteVariables do componente. Por exemplo:

Usando conexões

A tarefa Script usa a propriedade Connections do objeto Dts para acessar gerenciadores de conexões definidos no pacote. Por exemplo:

O componente Script usa propriedades do acessador tipado da classe base gerada automaticamente, criada a partir da lista de gerenciadores de conexões digitada pelo usuário na página Gerenciadores de Conexões do editor. Por exemplo:

Gerando eventos

A tarefa Script usa a propriedade Events do objeto Dts para gerar eventos. Por exemplo:

O componente Script gera erros, avisos e mensagens informativas através dos métodos da interface IDTSComponentMetaData100 retornados pela propriedade ComponentMetaData. Por exemplo:

Log

A tarefa Script usa o método Log do objeto Dts para registrar informações para provedores de log habilitados. Por exemplo:

O componente Script usa o método Log da classe base gerada automaticamente para registrar informações para provedores de log habilitados. Por exemplo:

[Visual Basic]

Dim bt(0) As Byte

Me.Log("Test Log Event", _

0, _

bt)

Retornando resultados

A tarefa Script usa a propriedade TaskResult e a propriedade opcional ExecutionValue do objeto Dts para notificar o tempo de execução sobre seus resultados.

O componente Script é executado como parte da tarefa Fluxo de Dados e não relata resultados através de uma dessas propriedades.

Depuração

A tarefa Script dá suporte a pontos de interrupção e passa pelo código durante a depuração no ambiente de design.

ObservaçãoObservação
Quando você depura um pacote contendo várias tarefas Script, o depurador acessa pontos de interrupção em apenas uma tarefa Script e ignora pontos de interrupção em outras tarefas Script. Quando uma tarefa Script faz parte de um contêiner Loop Foreach ou Loop For, o depurador ignora pontos de interrupção na tarefa Script depois da primeira iteração do loop.

O componente Script não dá suporte à depuração. Para obter mais informações, consulte "Depurando o componente Script" em Codificando e depurando o componente Script.

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os mais recentes downloads, artigos, exemplos e vídeos da Microsoft, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN ou TechNet:

Para receber uma notificação automática das atualizações, assine os feeds RSS disponíveis na página.