Trabalhando com tipos de dados no fluxo de dados

Ao desenvolver um componente de fluxo de dados personalizado no Integration Services, você trabalha constantemente com tipos de dados, copiando dados para e dos buffers de fluxo de dados e transformando valores. As informações deste tópico ajudam você a escolher os tipos de dados corretos do Integration Services e a usar os métodos corretos quando estiver trabalhando com eles.

Inserindo dados no fluxo de dados

A classe PipelineBuffer fornece uma série de métodos Set para copiar dados nas colunas do buffer e uma série correspondente de métodos Get para recuperar dados das colunas do buffer. As tabelas seguintes mostram a você qual método usar com cada tipo de dados Integration Services.

Defina os métodos a serem utilizados com os tipos de dados

Tipos de dados para usar com os métodos Set

Mapeando tipos de dados no fluxo de dados

Ao mover dados das fontes por meio de transformações até os destinos, um componente de fluxo de dados às vezes deve converter tipos de dados entre os tipos SQL Server Integration Services definidos na enumeração DataType e os tipos de dados gerenciados do Microsoft .NET Framework definidos no namespace do Sistema. Além disso, às vezes, um componente precisa converter um tipo de dados do Integration Services em outro para que o tipo possa ser convertido em um tipo gerenciado.

ObservaçãoObservação

Os arquivos de mapeamento no formato XML que são instalados por padrão em C:\Arquivos de Programas\Microsoft SQL Server\100\DTS\MappingFiles não são relacionados ao mapeamento de tipos de dados descrito neste tópico. Esses arquivos mapeiam tipos de dados de uma versão de banco de dados ou sistema para outro (por exemplo, de SQL Server 2000 para SQL Server ou de SQL Server para Oracle) e são utilizados somente pelo Assistente de Importação e Exportação do SQL Server. Para obter mais informações sobre esses arquivos de mapeamento, consulte Usando o Assistente de Importação e Exportação do SQL Server para mover dados.

Mapeando entre os tipos de dados gerenciados e do Integration Services

O PipelineComponent..::..BufferTypeToDataRecordType e os métodos PipelineComponent..::..DataRecordTypeToBufferType mapeiam tipos de dados Integration Services para tipos de dados gerenciados.

Observação sobre cuidadosCuidado

Os desenvolvedores devem utilizar esses métodos da classe PipelineComponent com cuidado e podem desejar codificar seus próprios métodos de mapeamento de tipo de dados que são mais adequados para as necessidades exclusivas de seus componentes personalizados. Os métodos existentes não consideram a precisão ou escala numérica ou outras propriedades estreitamente relacionadas ao tipo de dados em si. A Microsoft pode modificar ou remover esses métodos ou modificar os mapeamentos que eles realizam em uma versão futura do Integration Services.

A tabela a seguir lista como os métodos BufferTypeToDataRecordType e DataRecordTypeToBufferType mapeiam vários tipos de dados do Integration Services para tipos de dados gerenciados.

Tipos de dados do Integration Services

Mapeia para este tipo de dado gerenciado

DT_WSTR

System.String

DT_BYTES

Array of System.Byte

DT_DBTIMESTAMP

System.DateTime

DT_DBTIMESTAMP2

System.DateTime

DT_DBTIMESTAMPOFFSET

System.DateTimeOffset

DT_DBDATE

System.DateTime

DT_DBTIME

System.TimeSpan

DT_DBTIME2

System.TimeSpan

DT_DATE

System.DateTime

DT_FILETIME

System.DateTime

DT_NUMERIC

System.Decimal

DT_GUID

System.Guid

DT_I1

System.SByte

DT_I2

System.Int16

DT_I4

System.Int32

DT_I8

System.Int64

DT_BOOL

System.Boolean

DT_R4

System.Single

DT_R8

System.Double

DT_UI1

System.Byte

DT_UI2

System.UInt16

DT_UI4

System.UInt32

DT_UI8

System.UInt64

Mapeando tipos de dados do Integration Services para se ajustarem aos tipos de dados gerenciados

Às vezes, um componente de fluxo de dados também tem que converter um tipo de dado do Integration Services em outro antes daquele tipo poder ser convertido em um tipo gerenciado. A classe de método PipelineComponent..::..ConvertBufferDataTypeToFitManaged mapeia os tipos de dados do Integration Services em outros tipos de dados Integration Services que poderão, então, ser mapeados para tipos de dados gerenciados por meio do método PipelineComponent..::..BufferTypeToDataRecordType.

Observação sobre cuidadosCuidado

Os desenvolvedores devem utilizar esses métodos da classe PipelineComponent com cuidado e podem desejar codificar seus próprios métodos de mapeamento de tipo de dados que são mais adequados para as necessidades exclusivas de seus componentes personalizados. Os métodos existentes não consideram a precisão ou escala numérica ou outras propriedades estreitamente relacionadas ao tipo de dados em si. A Microsoft pode modificar ou remover esses métodos ou modificar os mapeamentos que eles realizam em uma versão futura do Integration Services.

A tabela seguinte lista como o método ConvertBufferDataTypeToFitManaged mapeia tipos de dados do Integration Services para outros tipos de dados do Integration Services.

ObservaçãoObservação

O método ConvertBufferDataTypeToFitManaged não retorna um valor para o tipo de dado DT_DBTIMESTAMPOFFSET e ocorre uma UnsupportedBufferDataTypeException. Você deve converter o tipo de dado DT_DBTIMESTAMPOFFSET em um dos tipos de dados de data/hora do Integration Services que podem ser mapeados para um tipo de dado gerenciado. Para obter uma lista de tipos de dados de data/hora do Integration Services que podem ser mapeados para tipos de dados gerenciados, consulte a tabela na seção anterior, "Mapeamento entre os tipos de dados gerenciados e do Integration Services". Para obter informações sobre como converter tipos de dados, consulte Tipos de dados do Integration Services.

Í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.