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. |
Microsoft Visual Studio Tools for Applications (VSTA) |
A tarefa e o componente usam o mesmo VSTA IDE e dão suporte ao código escrito em Microsoft Visual Basic 2008 ou Microsoft Visual 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çã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. |
|
Consulte também