Partilhar via


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 por meio da cópia de dados entre os buffers de fluxo de dados e a transformação de 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

A tabela seguinte lista o tipo de dado na primeira coluna e os métodos Set e Get correspondentes.

Tipo de Dado

Método Set

Método Get

DT_BOOL

SetBoolean

GetBoolean

DT_BYTES

SetBytes

GetBytes

DT_CY

SetDecimal

GetDecimal

DT_DATE

SetDateTime

GetDateTime

DT_DBDATE

SetDate

GetDate

DT_DBTIME

SetTime

GetTime

DT_DBTIME2

SetTime

GetTime

DT_DBTIMESTAMP

SetDateTime

GetDateTime

DT_DBTIMESTAMP2

SetDateTime

GetDateTime

DT_DBTIMESTAMPOFFSET

SetDateTimeOffset

GetDateTimeOffset

DT_DECIMAL

SetDecimal

GetDecimal

DT_FILETIME

SetDateTime

GetDateTime

DT_GUID

SetGuid

GetGuid

DT_I1

SetSByte

GetSByte

DT_I2

SetInt16

GetInt16

DT_I4

SetInt32

GetInt32

DT_I8

SetInt64

GetInt64

DT_IMAGE

AddBlobData ou AddBlobData

GetBlobData

DT_NTEXT

AddBlobData ou AddBlobData

GetBlobData

DT_NULL

SetNull

Não há método Get aplicável a este tipo de dados.

DT_NUMERIC

SetDecimal

GetDecimal

DT_R4

SetSingle

GetSingle

DT_R8

SetDouble

GetDouble

DT_STR

SetString

GetString

DT_TEXT

AddBlobData ou AddBlobData

GetBlobData

DT_UI1

SetByte

GetByte

DT_UI2

SetUInt16

GetUInt16

DT_UI4

SetUInt32

GetUInt32

DT_UI8

SetUInt64

GetUInt64

DT_WSTR

SetString

GetString

Tipos de dados para usar com os métodos Set

Método Set

Tipo de Dado

AddBlobData ou AddBlobData

DT_IMAGE, DT_NTEXT ou DT_TEXT

SetBoolean

DT_BOOL

SetByte

DT_UI1

SetBytes

DT_BYTES

SetDate

DT_DBDATE

SetDateTime

DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 ou DT_FILETIME

SetDateTimeOffset

DT_DBTIMESTAMPOFFSET

SetDecimal

DT_CY, DT_DECIMAL ou DT_NUMERIC

SetDouble

DT_R8

SetGuid

DT_GUID

SetInt16

DT_I2

SetInt32

DT_I4

SetInt64

DT_I8

SetNull

DT_NULL

SetSByte

DT_I1

SetSingle

DT_R4

SetString

DT_STR ou DT_WSTR

SetTime

DT_DBTIME ou DT_DBTIME2

SetUInt16

DT_UI2

SetUInt32

DT_UI4

SetUInt64

DT_UI8

Mapeando tipos de dados no fluxo de dados

Ao mover dados de origens por meio de transformações nos destinos, um componente de fluxo de dados deve algumas vezes converter tipos de dados entre os tipos do SQL Server Integration Services definidos na enumeração DataType e os tipos de dados gerenciados do Microsoft .NET Framework definidos no namespace System. 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\110\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 do banco de dados ou sistema para outro (por exemplo, do SQL Server para o Oracle) e são usados apenas pelo Assistente de Importação e Exportação do SQL Server. Para obter mais informações sobre esses arquivos de mapeamento, consulte Assistente de Importação e Exportação do SQL Server.

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 a escala numérica ou outras propriedades relacionadas intimamente ao próprio tipo de dados. O Microsoft pode modificar ou remover esses métodos ou modificar os mapeamentos que eles executam 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 a escala numérica ou outras propriedades relacionadas intimamente ao próprio tipo de dados. O Microsoft pode modificar ou remover esses métodos ou modificar os mapeamentos que eles executam 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.

Tipos de dados originais do Integration Services

Mapeia para este tipo de dado do Integration Services

DT_DECIMAL

DT_NUMERIC

DT_CY

DT_NUMERIC

DT_DATE

DT_DBTIMESTAMP

DT_DBDATE

DT_DBTIMESTAMP

DT_FILETIME

DT_DBTIMESTAMP

DT_DBTIMESTAMP2

DT_DBTIMESTAMP

DT_DBTIME

DT_DBTIME2

DT_BOOL

DT_I4

DT_TEXT

DT_WSTR

DT_NTEXT

DT_WSTR

DT_STR

DT_WSTR

DT_IMAGE

DT_BYTES

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 mais informações sobre a conversão de tipos de dados, consulte Tipos de dados do Integration Services.

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os downloads, artigos, exemplos e vídeos mais recentes da Microsoft, bem como soluções selecionadas pela comunidade, visite a página do Integration Services no MSDN:


Para receber uma notificação automática dessas atualizações, assine os RSS feeds disponíveis na página.

Consulte também

Referência

BufferTypeToDataRecordType

DataRecordTypeToBufferType

ConvertBufferDataTypeToFitManaged

Conceitos

Tipos de dados do Integration Services