Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
SSIS Integration Runtime em Azure Data Factory
A tarefa Script, disponível na janela Control Flow do designer de Serviços de Integração, e o componente Script, disponível na janela Fluxo de Dados, têm propósitos muito diferentes num pacote de Serviços de Integração. A tarefa é uma ferramenta de fluxo de controlo de uso geral, enquanto o componente serve como fonte, transformação ou destino no fluxo de dados. Apesar dos seus propósitos diferentes, a tarefa Script e o componente Script têm algumas semelhanças nas ferramentas de programação que utilizam e nos objetos do pacote que disponibilizam ao programador. Compreender as suas semelhanças e diferenças pode ajudá-lo a usar tanto a tarefa como o componente de forma mais eficaz.
Semelhanças entre a Tarefa de Script e o Componente de Script
A tarefa Script e o componente Script partilham as seguintes características comuns.
| Feature | Description |
|---|---|
| Dois modos de design time | Tanto na tarefa como no componente, começas por especificar propriedades no editor e depois mudas para o ambiente de desenvolvimento para escrever código. |
| Microsoft Visual Studio Ferramentas para Aplicações (VSTA) | Tanto a tarefa como o componente utilizam o mesmo IDE VSTA e suportam código escrito em Microsoft Visual Basic ou Microsoft Visual C#. |
| Scripts pré-compilados | A partir do SQL Server 2008 Integration Services (SSIS), todos os scripts são pré-compilados. Em versões anteriores, podia especificar se os scripts estavam 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. |
| Debugging | Tanto a tarefa como o componente suportam pontos de interrupção e passos em passo através do código durante a depuração no ambiente de design. Para mais informações, consulte Codificação e Depuração da Tarefa de Script e Codificação e Depuração do Componente de Script. |
Diferenças entre a Tarefa de Script e o Componente de Script
A tarefa Script e o componente Script apresentam as seguintes diferenças notáveis.
| Feature | Tarefa de script | Componente Script |
|---|---|---|
| Fluxo de controlo / Fluxo de dados | A tarefa Script está configurada no separador Control Flow do designer e executa-se fora do fluxo de dados do pacote. | O componente Script está configurado na página Fluxo de Dados do designer e representa uma fonte, transformação ou destino na tarefa Fluxo de Dados. |
| Purpose | Uma tarefa de script pode realizar quase qualquer tarefa de uso geral. | Deve especificar se quer criar uma fonte, transformação ou destino com o componente Script. |
| Execution | Uma tarefa Script executa código personalizado em algum momento do fluxo de trabalho do pacote. A menos que o coloques num contentor de loop ou num gestor de eventos, só corre uma vez. | Um componente Script também executa uma vez, mas normalmente executa a sua rotina principal de processamento uma vez por cada linha de dados no fluxo de dados. |
| Editor | O Editor de Tarefas de Scripts tem três páginas: Geral, Script e Expressões. Apenas as propriedades ReadOnlyVariables e ReadWriteVariables e ScriptLanguage afetam diretamente o código que podes escrever. | O Editor de Transformação de Scripts tem até quatro páginas: Colunas de Entrada, Entradas e Saídas, Gestores de Scripts e Ligações. Os metadados e propriedades que configuras em cada uma destas páginas determinam os membros das classes base que são geradas automaticamente para o teu uso na programação. |
| Interação com o pacote | No código escrito para uma tarefa Script, usas a propriedade DTS para aceder a outras funcionalidades do pacote. A propriedade Dts pertence à classe ScriptMain . | No código de componentes Script, utiliza-se propriedades de acessório tipadas para aceder a certas funcionalidades do pacote, como variáveis e gestores de ligações. O método PreExecute só pode aceder a variáveis de apenas leitura. O método PostExecute pode aceder tanto a variáveis de apenas leitura como a variáveis de leitura/escrita. Para mais informações sobre estes métodos, consulte Codificação e Depuração do Componente de Script. |
| Utilização de variáveis | A tarefa Script utiliza a Variables propriedade do objeto DTS para aceder a variáveis disponíveis através das propriedades e da ReadOnlyVariablesReadWriteVariables tarefa. Por exemplo: [Visual Basic] Dim myVar as String myVar = Dts.Variables("MyStringVariable").Value.ToString[C#] string myVar; myVar = Dts.Variables["MyStringVariable"].Value.ToString(); |
O componente Script utiliza propriedades de acessório tipadas da classe baseada autogerada, criadas a partir das propriedades do ReadOnlyVariables componente e ReadWriteVariables do componente. Por exemplo: [Visual Basic] Dim myVar as String myVar = Me.Variables.MyStringVariable[C#] string myVar; myVar = this.Variables.MyStringVariable; |
| Utilização de ligações | A tarefa Script utiliza a Connections propriedade do objeto DTS para aceder aos gestores de ligação definidos no pacote. Por exemplo: [Visual Basic] 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 utiliza propriedades de acessório digitadas da classe base autogerada, criadas a partir da lista de gestores de ligação introduzidos pelo utilizador na página de Gerentes de Ligação do editor. Por exemplo: [Visual Basic] Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection[C#] IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection; |
| Eventos de elevação | A tarefa Script usa a Events propriedade do objeto DTS para gerar eventos. Por exemplo: [Visual Basic] 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 utilizando os métodos da IDTSComponentMetaData100 interface devolvidos pela ComponentMetaData propriedade. Por exemplo: [Visual Basic] Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...) |
| Exploração Florestal | A tarefa Script utiliza o Log método do objeto DTS para registar informações para os fornecedores de registo ativados. Por exemplo: [Visual Basic] 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 utiliza o Log método da classe base gerada automaticamente para registar informação para os fornecedores de registo ativados. Por exemplo: [Visual Basic] Dim bt(0) As ByteMe.Log("Test Log Event", _0, _bt)[C#] byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt); |
| Apresentação de resultados | A tarefa Script utiliza tanto a TaskResult propriedade como a propriedade opcional ExecutionValue do objeto DTS para notificar o tempo de execução dos seus resultados. | O componente Script é executado como parte da tarefa Fluxo de Dados e não reporta resultados usando nenhuma destas propriedades. |