Trabajar con tipos de datos del flujo de datos

Al desarrollar un componente de flujo de datos personalizado en Integration Services, trabaja constantemente con tipos de datos, copiando datos en y fuera de búferes de flujo de datos y transformando valores. La información de este tema le ayuda a elegir los tipos de datos de Integration Services correctos y a utilizar los métodos correctos al trabajar con ellos.

Insertar datos en el flujo de datos

La clase PipelineBuffer proporciona una serie de métodos Set para copiar los datos en las columnas de búfer y una serie correspondiente de métodos Get para recuperar los datos de las columnas de búfer. En las tablas siguientes se muestra qué método utilizar con cada tipo de datos de Integration Services.

Establecer los métodos que se van a usar con los tipos de datos

En la tabla siguiente se enumeran los tipos de datos en la primera columna y, a continuación, se enumeran los métodos Get y Set correspondientes.

Tipo de datos

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 o AddBlobData

GetBlobData

DT_NTEXT

AddBlobData o AddBlobData

GetBlobData

DT_NULL

SetNull

No hay ningún método Get aplicable a este tipo de datos.

DT_NUMERIC

SetDecimal

GetDecimal

DT_R4

SetSingle

GetSingle

DT_R8

SetDouble

GetDouble

DT_STR

SetString

GetString

DT_TEXT

AddBlobData o AddBlobData

GetBlobData

DT_UI1

SetByte

GetByte

DT_UI2

SetUInt16

GetUInt16

DT_UI4

SetUInt32

GetUInt32

DT_UI8

SetUInt64

GetUInt64

DT_WSTR

SetString

GetString

Tipos de datos que se van a usar con los métodos Set

Método Set

Tipo de datos

AddBlobData o AddBlobData

DT_IMAGE, DT_NTEXT o DT_TEXT

SetBoolean

DT_BOOL

SetByte

DT_UI1

SetBytes

DT_BYTES

SetDate

DT_DBDATE

SetDateTime

DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 o DT_FILETIME

SetDateTimeOffset

DT_DBTIMESTAMPOFFSET

SetDecimal

DT_CY, DT_DECIMAL o 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 o DT_WSTR

SetTime

DT_DBTIME O bien DT_DBTIME2

SetUInt16

DT_UI2

SetUInt32

DT_UI4

SetUInt64

DT_UI8

Asignar los tipos de datos en el flujo de datos

Al mover datos desde los orígenes a través de transformaciones hasta los destinos, un componente de flujo de datos debe realizar a veces la conversión entre los tipos de SQL Server Integration Services definidos en la enumeración DataType y los tipos de datos administrados de Microsoft .NET Framework definidos en el espacio de nombres System. Además, un componente debe realizar a veces la conversión de un tipo de datos de Integration Services en otro antes de que ese tipo se pueda convertir en un tipo administrado.

[!NOTA]

Los archivos de asignación en formato XML que se instalan de forma predeterminada en C:\Archivos de programa\Microsoft SQL Server\110\DTS\MappingFiles no tienen que ver con la asignación de tipo de datos descrita en este tema. Estos archivos asignan los tipos de datos de una versión de base de datos o sistema a otra (por ejemplo, de SQL Server a Oracle) y solo los usa el Asistente para importación y exportación de SQL Server. Para obtener más información acerca de los archivos de asignación, vea Asistente para importación y exportación de SQL Server.

Realizar asignaciones entre los tipos de datos de Integration Services y los administrados

Los métodos PipelineComponent.DataRecordTypeToBufferType y PipelineComponent.BufferTypeToDataRecordType asignan los tipos de datos de Integration Services a los tipos de datos administrados.

Nota de advertenciaAdvertencia

Los programadores deben utilizar estos métodos de la clase PipelineComponent con precaución y quizá prefieran codificar los métodos de asignación de tipo de datos propios que mejor se ajustan a las necesidades únicas de sus componentes personalizados. Los métodos existentes no consideran la precisión numérica o la escala, u otras propiedades estrechamente relacionadas con el propio tipo de datos. Microsoft puede modificar o quitar estos métodos, o modificar las asignaciones que realizan, en una versión futura de Integration Services.

En la siguiente tabla se muestra cómo los métodos BufferTypeToDataRecordType y DataRecordTypeToBufferType asignan los distintos tipos de datos de Integration Services a los tipos de datos administrados.

Tipo de datos de Integration Services

Se asigna a este tipo de datos administrado

DT_WSTR

System.String

DT_BYTES

Matriz de 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

Asignar los tipos de datos de Integration Services para que se ajusten a los tipos de datos administrados

A veces, un componente de flujo de datos debe convertir un tipo de datos de Integration Services en otro antes de que ese tipo se pueda convertir en un tipo administrado. La clase de método PipelineComponent.ConvertBufferDataTypeToFitManaged asigna los tipos de datos de Integration Services a otros tipos de datos de Integration Services que se pueden asignar después a los tipos de datos administrados utilizando el método PipelineComponent.BufferTypeToDataRecordType.

Nota de advertenciaAdvertencia

Los programadores deben utilizar estos métodos de la clase PipelineComponent con precaución y quizá prefieran codificar los métodos de asignación de tipo de datos propios que mejor se ajustan a las necesidades únicas de sus componentes personalizados. Los métodos existentes no consideran la precisión numérica o la escala, u otras propiedades estrechamente relacionadas con el propio tipo de datos. Microsoft puede modificar o quitar estos métodos, o modificar las asignaciones que realizan, en una versión futura de Integration Services.

En la tabla siguiente se muestra cómo el método ConvertBufferDataTypeToFitManaged asigna los tipos de datos de Integration Services a otros tipos de datos de Integration Services.

Tipo de datos original de Integration Services

Se asigna a este tipo de datos de 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

[!NOTA]

El método ConvertBufferDataTypeToFitManaged no devuelve un valor para el tipo de datos DT_DBTIMESTAMPOFFSET y se produce una excepción UnsupportedBufferDataTypeException. Debe convertir el tipo de datos DT_DBTIMESTAMPOFFSET en uno de los tipos de datos de fecha y hora de Integration Services que se pueden asignar a un tipo de datos administrado. Para obtener una lista de los tipos de datos de fecha y hora de Integration Services que se pueden asignar a los tipos de datos administrados, vea la tabla de la sección anterior, "Realizar asignaciones entre los tipos de datos de Integration Services y los administrados". Para obtener información acerca de cómo convertir los tipos de datos, vea Tipos de datos de Integration Services.

Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las descargas, los artículos, los ejemplos y los vídeos más recientes de Microsoft, así como una selección de soluciones de la comunidad, visite la página de Integration Services en MSDN:


Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.

Vea también

Referencia

BufferTypeToDataRecordType

DataRecordTypeToBufferType

ConvertBufferDataTypeToFitManaged

Conceptos

Tipos de datos de Integration Services