Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A tarefa Script, disponível na janela Fluxo de Controle do designer do Integration Services, e o componente Script, disponível na janela Fluxo de Dados, têm finalidades muito diferentes em um pacote do Integration Services. A tarefa é uma ferramenta de fluxo de controle de uso geral, enquanto o componente serve como uma origem, transformação ou destino no fluxo de dados. No entanto, apesar de suas diferentes finalidades, a tarefa Script e o componente Script têm algumas semelhanças nas ferramentas de codificação que eles usam e nos objetos no pacote que eles disponibilizam para o desenvolvedor. Entender suas semelhanças e diferenças pode ajudá-lo a usar a tarefa e o componente com mais eficiência.
Semelhanças entre a tarefa Script e o componente Script
A tarefa Script e o componente Script compartilham os seguintes recursos comuns.
| Característica | Descrição |
|---|---|
| Dois modos de tempo de design | Na tarefa e no componente, você começa especificando propriedades no editor e, em seguida, alterna para o ambiente de desenvolvimento para escrever código. |
| VSTA (Ferramentas do Microsoft Visual Studio para Aplicativos) | A tarefa e o componente usam o mesmo IDE do VSTA e o código de suporte escrito no Microsoft Visual Basic ou no Microsoft Visual C#. |
| Scripts pré-compilados | A partir do SSIS (SQL Server 2008 Integration Services), todos os scripts são pré-compilados. Em versões anteriores, você poderia especificar se os scripts foram pré-compilados. O script é pré-compilado em código binário, permitindo uma execução mais rápida, mas ao custo do aumento do tamanho do pacote. |
| Resolução de Erros | A tarefa e o componente dão suporte a pontos de interrupção e passo a passo pelo código durante a depuração no ambiente de design. Para obter mais informações, consulte Codificação e depuração da tarefa Script e [Codificação e depuração do componente script](.. /extending-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md. |
Diferenças entre a tarefa Script e o componente script
A tarefa Script e o componente Script têm as seguintes diferenças notáveis.
| Característica | 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. |
| Propósito | Uma tarefa Script pode realizar quase qualquer tarefa de uso geral. | Você deve especificar se deseja criar uma origem, transformação ou destino com o componente Script. |
| Execução | Uma tarefa Script executa o código personalizado em algum momento no fluxo de trabalho do pacote. A menos que você o coloque em um contêiner de loop ou em um manipulador de eventos, ele só é executado uma vez. | Um componente script também é executado uma vez, mas normalmente executa sua rotina de processamento principal uma vez para cada linha de dados no fluxo de dados. |
| Editor | O Editor de Tarefas de Script tem três páginas: Geral, Script e Expressões. Somente as ReadOnlyVariables propriedades e ReadWriteVariablese ScriptLanguage afetam diretamente o código que você pode escrever. |
O Editor de Transformação Script tem até quatro páginas: Colunas de Entrada, Entradas e Saídas, Script e Gerenciadores de Conexões. Os metadados e as propriedades que você configura em cada uma dessas páginas determinam os membros das classes base que são gerados automaticamente para seu uso na codificação. |
| Interação com o pacote | No código escrito para uma tarefa Script, você usa a Dts propriedade para acessar outros recursos do pacote. A Dts propriedade é um membro da ScriptMain classe. |
No código do componente Script, você usa propriedades do acessador digitadas para acessar determinados recursos de pacote, 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 [Codificação e depuração do componente script](.. /extending-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md. |
| Usar variáveis | A tarefa Script usa a Variables propriedade do Dts objeto para acessar variáveis que estão disponíveis por meio das propriedades e ReadWriteVariables da ReadOnlyVariables tarefa. Por exemplo:[VB] Dim myVar as String myVar = Dts.Variables("MyStringVariable").Value.ToString[C#] string myVar; myVar = Dts.Variables["MyStringVariable"].Value.ToString(); |
O componente Script usa propriedades do acessador tipadas da classe baseada gerada automaticamente, criadas a partir das propriedades e ReadWriteVariables do ReadOnlyVariables componente. Por exemplo: [VB] Dim myVar as String myVar = Me.Variables.MyStringVariable[C#] string myVar; myVar = this.Variables.MyStringVariable; |
| Usando conexões | A tarefa Script usa a Connections propriedade do objeto para acessar os Dts gerenciadores de conexão definidos no pacote. Por exemplo:[VB] Dim myFlatFileConnection As String myFlatFileConnection = _ DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _ String)[C#] string myFlatFileConnection; myFlatFileConnection = (Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String); |
O componente Script usa propriedades do acessador digitadas da classe base gerada automaticamente, criadas a partir da lista de gerenciadores de conexões inseridos pelo usuário na página Gerenciadores de Conexões do editor. Por exemplo: [VB] Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection[C#] IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection; |
| Levantando eventos | A tarefa Script usa a Events propriedade do Dts objeto para gerar eventos. Por exemplo:[VB] Dts.Events.FireError(0, "Event Snippet", _ ex.Message & ControlChars.CrLf & ex.StackTrace, _ "", 0)[C#] Dts.Events.FireError(0, "Event Snippet", ex.Message + "\r" + ex.StackTrace, "", 0); |
O componente Script gera erros, avisos e mensagens informativas usando os métodos da IDTSComponentMetaData100 interface retornados pela ComponentMetaData propriedade. Por exemplo: [VB] Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...) |
| Registro | A tarefa Script usa o Log método do Dts objeto para registrar informações em log para provedores de log habilitados. Por exemplo:[VB] Dim bt(0) As Byte Dts.Log("Test Log Event", _ 0, _ bt)[C#] byte[] bt = new byte[0]; Dts.Log("Test Log Event", 0, bt); |
O componente Script usa o Log método da classe base gerada automaticamente para registrar informações em log para provedores de log habilitados. Por exemplo: [VB] Dim bt(0) As ByteMe.Log("Test Log Event", _0, _bt)[C#] byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt); |
| Retornando resultados | A tarefa Script usa a TaskResult propriedade e a propriedade opcional ExecutionValue do Dts objeto para notificar o runtime de seus resultados. |
O componente Script é executado como parte da tarefa Fluxo de Dados e não relata resultados usando nenhuma dessas propriedades. |
Consulte Também
Estendendo o pacote com a tarefa Script
Estender o fluxo de dados com o componente de Script
Usando uma tarefa de script no SSIS do SQL Server Integration Services para se conectar a um serviço Web