Mais nao quero usar como caixa traseira nem frontal, eu quero que saia o mesmo som nas duas caixas. Quando montei meu pc funcionava, eu ligava uma caixa no verde e uma no azul, agora parou de funcionar sozinho. Quando eu fui olhar no gerenciador de audio da realtek a porta de audio azul estava como entrada de linha, quero mudar para saida de linha.
-->Antes de escrever um código personalizado no componente Script, primeiro selecione o tipo de componente de fluxo de dados que deseja criar – origem, transformação ou destino – e, em seguida, configure os metadados e as propriedades do componente no Editor de Transformação Scripts.Before you write custom code in the Script component, you must select the type of data flow component that you want to create-source, transformation, or destination-and then configure the component's metadata and properties in the Script Transformation Editor.
Selecionando o tipo de componente a ser criadoSelecting the Type of Component to Create
Quando você adiciona um componente Script ao painel Fluxo de Dados do Designer do SSISSSIS, a caixa de diálogo Selecionar Tipo de Componente Script é exibida.When you add a Script component to the Data Flow pane of SSISSSIS Designer, the Select Script Component Type dialog box appears.Pré-configure o componente como uma origem, transformação ou destino.You preconfigure the component as a source, transformation, or destination.Depois de fazer essa seleção inicial, continue configurando o componente no Editor de Transformação Scripts.After you make this initial selection, you can continue to configure the component in the Script Transformation Editor.
Para definir a linguagem de script padrão para o componente Script, use a opção Linguagem de scripts na página Geral da caixa de diálogo Opções.To set the default script language for the Script component, use the Scripting language option on the General page of the Options dialog box.Para obter mais informações, consulte General Page.For more information, see General Page.
Compreendendo os dois modos de tempo de designUnderstanding the Two Design-Time Modes
No SSISSSIS Designer, o componente Script tem dois modos: modo de design de metadados e modo de design de código.In SSISSSIS Designer, the Script component has two modes: metadata design mode and code design mode.
Quando você abre o Editor de Transformação Scripts, o componente insere o modo de design de metadados.When you open the Script Transformation Editor, the component enters metadata design mode.Nesse modo, você pode selecionar colunas de entrada, e adicionar ou configurar saídas e colunas de saída, mas não pode escrever código.In this mode, you can select input columns, and add or configure outputs and output columns, but you cannot write code.Depois de configurar os metadados do componente, você poderá alternar para o modo de design de código para escrever o script.After you have configured the component's metadata, you can switch to code design mode to write the script.
Quando você alterna para o modo de design de código clicando em Editar Script, o componente Script bloqueia metadados para impedir alterações adicionais e, depois, gera automaticamente o código base dos metadados das entradas e saídas.When you switch to code design mode by clicking Edit Script, the Script component locks metadata to prevent additional changes, and then automatically generates base code from the metadata of the inputs and outputs.Depois que o código gerado automaticamente estiver concluído, você poderá digitar seu código personalizado.After the autogenerated code is complete, you will be able to enter your custom code.Seu código usa as classes base geradas automaticamente para processar linhas de entrada, acessar buffers e colunas nos buffers, além de recuperar gerenciadores de conexões e variáveis do pacote, tudo como objetos fortemente tipados.Your code uses the auto-generated base classes to process input rows, to access buffers and columns in the buffers, and to retrieve connection managers and variables from the package, all as strongly-typed objects.
Depois de digitar seu código personalizado em modo de design de código, você pode alternar para o modo de design de metadados.After entering your custom code in code design mode, you can switch back to metadata design mode.Isso não exclui códigos digitados; porém, as alterações subsequentes nos metadados levam à regeneração da classe base.This does not delete any code that you have entered; however, subsequent changes to the metadata cause the base class to be regenerated.Posteriormente, a validação de seu componente poderá falhar porque os objetos referenciados por seu código personalizado não existem mais ou foram modificados.Afterward, your component may fail validation because objects referenced by your custom code may no longer exist or may have been modified.Nesse caso, corrija o código manualmente para permitir sua compilação com êxito em relação à classe base regenerada.In this case, you must fix your code manually so that it can be compiled successfully against the regenerated base class.
Configurando o componente em modo do design de metadadosConfiguring the Component in Metadata Design Mode
No modo do design de metadados, você pode selecionar colunas de entrada, e adicionar e configurar saídas e colunas de saída, mas não pode escrever código.In metadata design mode, you can select input columns, and add and configure outputs and output columns, but you cannot write code.Depois de configurar os metadados do componente, alterne para o modo de design de código para escrever o script.After you have configured the component's metadata, switch to code design mode to write the script.
As propriedades a serem configuradas no editor personalizado dependem do uso do componente Script.The properties that you must configure in the custom editor depend on the usage of the Script component.O componente Script pode ser configurado como uma origem, uma transformação ou um destino.The Script component can be configured as a source, a transformation, or a destination.Dependendo de como o componente é usado, ele oferece suporte a uma entrada ou saídas, ou ambas.Depending on how the component is used, it supports either an input or outputs or both.O código personalizado que você escreverá processa as linhas e colunas de entrada e saída.The custom code that you will write processes the input and output rows and columns.
Página Colunas de Entrada do Editor de Transformação ScriptsInputs Columns Page of the Script Transformation Editor
A página Colunas de Entrada do Editor de Transformação Scripts é exibida para transformações e destinos, mas não para origens.The Input Columns page of the Script Transformation Editor is displayed for transformations and destinations, but not for sources.Nessa página, você seleciona as colunas de entrada disponíveis a serem disponibilizadas para seu script personalizado, e especifica o acesso somente leitura ou de leitura/gravação a elas.On this page, you select the available input columns that you want to make available to your custom script, and specify read-only or read/write access to them.
No projeto de código que será gerado com base nesses metadados, o item de projeto BufferWrapper contém uma classe para cada entrada. Essa classe contém propriedades de acessador tipado para cada coluna de entrada selecionada.In the code project that will be generated based on this metadata, the BufferWrapper project item contains a class for each input, and this class contains typed accessor properties for each input column selected.Por exemplo, se você selecionar uma coluna de inteiro CustomerID e uma coluna de cadeia de caracteres CustomerName de uma entrada chamada CustomerInput, o item de projeto BufferWrapper conterá uma classe CustomerInput que deriva de ScriptBuffer e a classe CustomerInput exporá uma propriedade de inteiro chamada CustomerID e uma propriedade de cadeia de caracteres chamada CustomerName.For example, if you select an integer CustomerID column and a string CustomerName column from an input named CustomerInput, the BufferWrapper project item will contain a CustomerInput class that derives from ScriptBuffer, and the CustomerInput class will expose an integer property named CustomerID and a string property named CustomerName.Essa convenção permite escrever código com verificação de tipo, conforme mostrado a seguir:This convention makes it possible to write code with type-checking like the following:
Para obter mais informações sobre como configurar colunas de entrada para um tipo específico de componente de fluxo de dados, consulte o exemplo apropriado em Desenvolvendo tipos específicos de componentes de Script.For more information about how to configure input columns for a specific type of data flow component, see the appropriate example under Developing Specific Types of Script Components.
Página Entradas e Saídas do Editor de Transformação ScriptsInputs and Outputs Page of the Script Transformation Editor
A página Entradas e Saídas do Editor de Transformação Scripts é exibida para origens, transformações e destinos.The Input and Outputs page of the Script Transformation Editor is displayed for sources, transformations, and destinations.Nessa página, você adiciona, remove e configura entradas, saídas e colunas de saída a serem usadas no seu script personalizado, dentro das seguintes limitações:On this page, you add, remove, and configure inputs, outputs, and output columns that you want to use in your custom script, within the following limitations:
- Quando usado como uma origem, o componente Script não possui entrada e dá suporte a várias saídas.When used as a source, the Script component has no input and supports multiple outputs.
- Quando usado como uma transformação, o componente Script dá suporte a uma entrada e a várias saídas.When used as a transformation, the Script component supports one input and multiple outputs.
- Quando usado como um destino, o componente Script dá suporte a uma entrada e não possui saídas.When used as a destination, the Script component supports one input and has no outputs.
No projeto de código que será gerado com base nesses metadados, o item de projeto BufferWrapper contém uma classe para cada entrada e saída.In the code project that will be generated based on this metadata, the BufferWrapper project item contains a class for each input and output.Por exemplo, se você criar uma saída chamada CustomerOutput, o item de projeto BufferWrapper conterá uma classe CustomerOutput que deriva de ScriptBuffer e a classe CustomerOutput conterá propriedades do acessador tipado para cada coluna de saída criada.For example, if you create an output named CustomerOutput, the BufferWrapper project item will contain a CustomerOutput class that derives from ScriptBuffer, and the CustomerOutput class will contain typed accessor properties for each output column created.
Você só pode configurar colunas de saída na página Entradas e Saídas.You can configure output columns only on the Input and Outputs page.Selecione colunas de entrada para transformações e destinos na página Colunas de Entrada.You can select input columns for transformations and destinations on the Input Columns page.As propriedades de acessador tipado criadas para você no item de projeto BufferWrapper serão somente para gravação em colunas de saída.The typed accessor properties created for you in the BufferWrapper project item will be write-only for output columns.As propriedades do acessador para colunas de entrada serão somente leitura ou de leitura/gravação, dependendo do tipo de uso selecionado para cada coluna na página Colunas de Entrada.The accessor properties for input columns will be read-only or read/write depending on the usage type that you have selected for each column on the Input Columns page.
Para obter mais informações sobre como configurar entradas e saídas para um tipo específico de componente de fluxo de dados, consulte o exemplo apropriado em Desenvolvendo tipos específicos de componentes de Script.For more information about configuring inputs and outputs for a specific type of data flow component see the appropriate example under Developing Specific Types of Script Components.
Observação
Embora não seja possível configurar diretamente uma saída como uma saída de erro no componente Script para manipular automaticamente as linhas de erro, você pode reproduzir a funcionalidade de uma saída de erro criando uma saída adicional e usando o script para direcionar linhas a essa saída quando apropriado.Although you cannot directly configure an output as an error output in the Script component for automatic handling of error rows, you can reproduce the functionality of an error output by creating an additional output and using script to direct rows to this output when appropriate.Para obter mais informações, consulte Simulando uma saída de erro para o componente Script.For more information, see Simulating an Error Output for the Script Component.
Propriedades de saída ExclusionGroup e SynchronousInputIDExclusionGroup and SynchronousInputID Properties of Outputs
A propriedade ExclusionGroup tem um valor diferente de zero somente em transformações com saídas síncronas, em que o código executa a filtragem ou cria ramificações e direciona cada linha para uma das saídas que compartilham o mesmo valor ExclusionGroup diferente de zero.The ExclusionGroup property has a non-zero value only in transformations with synchronous outputs, where your code performs filtering or branching and directs each row to one of the outputs that share the same non-zero ExclusionGroup value.Por exemplo, a transformação pode direcionar linhas para a saída padrão ou para uma saída de erro.For example, the transformation can direct rows either to the default output or to an error output.Ao criar saídas adicionais para este cenário, defina o valor da propriedade SynchronousInputID como o inteiro que corresponde à ID da entrada do componente.When you create additional outputs for this scenario, make sure to set the value of the SynchronousInputID property to the integer that matches the ID of the component's input.
A propriedade SynchronousInputID só tem um valor diferente de zero em transformações com saídas síncronas.The SynchronousInputID property has a non-zero value only in transformations with synchronous outputs.Se o valor dessa propriedade for zero, significa que a saída é assíncrona.If the value of this property is zero, it means that the output is asynchronous.Para uma saída síncrona, em que linhas são passadas para as saídas selecionadas sem a adição de novas linhas, essa propriedade deve conter a ID da entrada do componente.For a synchronous output, where rows are passed through to the selected output or outputs without adding any new rows, this property should contain the ID of the component's input.
Observação
Quando o Editor de Transformação Scripts cria a primeira saída, ele define a propriedade SynchronousInputID da saída com a ID da entrada do componente.When the Script Transformation Editor creates the first output, the editor sets the SynchronousInputID property of the output to the ID of the component's input.Porém, quando o editor cria saídas posteriores, ele define as propriedades SynchronousInputID dessas saídas como zero.However, when the editor creates subsequent outputs, the editor sets the SynchronousInputID properties of those outputs to zero.
Se estiver criando um componente com saídas síncronas, cada saída deverá ter sua propriedade SynchronousInputID definida como a ID da entrada do componente.If you are creating a component with synchronous outputs, each output must have its SynchronousInputID property set to the ID of the component's input.Portanto, cada saída criada pelo editor após a primeira saída deve ter seu valor SynchronousInputID alterado de zero para a ID da entrada do componente.Therefore, each output that the editor creates after the first output must have its SynchronousInputID value changed from zero to the ID of the component's input.
Se estiver criando um componente com saídas assíncronas, cada saída deverá ter sua propriedade SynchronousInputID definida como zero.If you are creating a component with asynchronous outputs, each output must have its SynchronousInputID property set to zero.Portanto, a primeira saída deve ter seu valor SynchronousInputID alterado da ID da entrada do componente para zero.Therefore, the first output must have its SynchronousInputID value changed from the ID of the component's input to zero.
Para obter um exemplo de como direcionar linhas para uma das duas saídas síncronas no componente Script, consulte Criando uma transformação síncrona com o componente Script.For an example of directing rows to one of two synchronous outputs in the Script component, see Creating a Synchronous Transformation with the Script Component.
Nomes de objeto em script geradoObject Names in Generated Script
O componente Script analisa os nomes de entradas e saídas, além dos nomes de colunas nas entradas e saídas. Com base nesses nomes, ele gera classes e propriedades no item de projeto BufferWrapper.The Script component parses the names of inputs and outputs, and parse the names of columns in the inputs and outputs, and based on these names generates classes and properties in the BufferWrapper project item.Se os nomes encontrados incluírem caracteres que não pertencem às categorias do Unicode UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter ou DecimalDigitLetter, os caracteres inválidos serão removidos dos nomes gerados.If the found names include characters that do not belong to the Unicode categories UppercaseLetter, LowercaseLetter, TitlecaseLetter, ModifierLetter, OtherLetter, or DecimalDigitLetter, the invalid characters are dropped in the generated names.Por exemplo, os espaços são removidos; portanto, duas colunas de entrada que têm os nomes FirstName e [First Name] são interpretadas como tendo o nome de coluna FirstName, com resultados imprevisíveis.For example, spaces are dropped, therefore two input columns that have the names FirstName and [First Name] are both interpreted as having the column name FirstName, with unpredictable results.Para evitar essa situação, os nomes das entradas e saídas e das colunas de entrada e saída usados pelo componente Script devem conter apenas caracteres nas categorias Unicode listadas nessa seção.To avoid this situation, the names of inputs and outputs and of input and output columns used by the Script component should contain only characters in the Unicode categories listed in this section.
Página Script do Editor de Transformação ScriptsScript Page of the Script Transformation Editor
Na página Script do Editor da Tarefa Script, atribua um nome exclusivo e uma descrição à tarefa Script.On the Script page of the Script Task Editor, you assign a unique name and a description for the Script task.Você também pode atribuir valores para as propriedades a seguir.You can also assign values for the following properties.
Observação
No SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) e versões posteriores, todos os scripts são pré-compilados.In SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) and later versions, all scripts are precompiled.Em versões anteriores, você especificava se os scripts eram pré-compilados configurando uma propriedade Precompile para a tarefa.In previous versions, you specified whether scripts were precompiled by setting a Precompile property for the task.
Propriedade ValidateExternalMetadataValidateExternalMetadata Property
O valor booliano da propriedade ValidateExternalMetadata especifica se o componente deve executar a validação em fontes de dados externas em tempo de design ou se deve adiar a validação até o tempo de execução.The Boolean value of the ValidateExternalMetadata property specifies whether the component should perform validation against external data sources at design time, or whether it should postpone validation until run time.Por padrão, o valor dessa propriedade é True; ou seja, os metadados externos são validados em tempo de design e em tempo de execução.By default, the value of this property is True; that is, the external metadata is validated both at design time and at run time.É recomendável definir o valor dessa propriedade como False quando uma fonte de dados externa não está disponível em tempo de design: por exemplo, quando o pacote baixa a origem ou cria o destino apenas em tempo de execução.You may want to set the value of this property to False when an external data source is not available at design time: for example, when the package downloads the source or creates the destination only at run time.
Propriedades ReadOnlyVariables e ReadWriteVariablesReadOnlyVariables and ReadWriteVariables Properties
Você pode inserir listas de variáveis existentes, delimitadas por vírgulas, como os valores dessas propriedades a fim de disponibilizar as variáveis para acesso somente leitura ou leitura/gravação dentro do código de componente Script.You can enter comma-delimited lists of existing variables as the values of these properties to make the variables available for read-only or read/write access within the Script component code.Variáveis são acessadas em código através das propriedades ReadOnlyVariables e ReadWriteVariables da classe base gerada automaticamente.Variables are accessed in code through the ReadOnlyVariables and ReadWriteVariables properties of the autogenerated base class.Para obter mais informações, consulte Usando variáveis no componente Script.For more information, see Using Variables in the Script Component.
Observação
Nomes de variáveis diferenciam maiúsculas e minúsculas.Variable names are case-sensitive.
ScriptLanguageScriptLanguage
Você pode selecionar o MicrosoftMicrosoft Visual Basic ou o MicrosoftMicrosoft Visual C# como a linguagem de programação do componente Script.You can select either MicrosoftMicrosoft Visual Basic or MicrosoftMicrosoft Visual C# as the programming language for the Script component.
Botão Editar ScriptEdit Script Button
O botão Editar Script abre o IDE do VSTA (MicrosoftMicrosoftVisual StudioVisual Studio Tools for Applications) no qual você escreve o script personalizado.The Edit Script button opens the MicrosoftMicrosoftVisual StudioVisual Studio Tools for Applications (VSTA) IDE in which you write your custom script.Para obter mais informações, consulte Codificando e depurando o componente Script.For more information, see Coding and Debugging the Script Component.
Página Gerenciadores de Conexões do Editor de Transformação ScriptsConnection Managers Page of the Script Transformation Editor
Na página Gerenciadores de Conexões do Editor de Transformação Scripts, você adiciona e remove gerenciadores de conexões que deseja usar no script personalizado.On the Connection Managers page of the Script Transformation Editor, you add and remove connection managers that you want to use in your custom script.Em geral, você precisa referenciar gerenciadores de conexões quando cria um componente de origem ou destino.Normally you need to reference connection managers when you create a source or destination component.
No projeto de código que será gerado com base nesses metadados, o item de projeto ComponentWrapper contém uma classe de coleção Connections que contém uma propriedade de acessador tipado para cada gerenciador de conexões selecionado.In the code project that will be generated based on this metadata, the ComponentWrapper project item contains a Connections collection class that has a typed accessor property for each selected connection manager.Cada propriedade de acessador tipado possui nome idêntico ao do próprio gerenciador de conexões e retorna uma referência ao gerenciador de conexões como uma instância de IDTSConnectionManager100.Each typed accessor property has the same name as the connection manager itself and returns a reference to the connection manager as an instance of IDTSConnectionManager100.Por exemplo, se você adicionou um gerenciador de conexões chamado
MyADONETConnection
na página Gerenciadores de Conexões do editor, poderá obter uma referência ao gerenciador de conexões no script usando o seguinte código:For example, if you have added a connection manager named MyADONETConnection
on the Connection Managers page of the editor, you can obtain a reference to the connection manager in your script by using the following code:Para obter mais informações, consulte Conectando-se a fontes de dados no componente Script.For more information, see Connecting to Data Sources in the Script Component.