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 |
---|---|---|
No hay ningún método Get aplicable a este tipo de datos. |
||
Tipos de datos que se van a usar con los métodos Set
Método Set |
Tipo de datos |
---|---|
DT_DBTIME O bien DT_DBTIME2 |
|
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.
Advertencia |
---|
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 |
---|---|
System.String |
|
Matriz de System.Byte |
|
System.DateTime |
|
System.DateTime |
|
System.DateTimeOffset |
|
System.DateTime |
|
System.TimeSpan |
|
System.TimeSpan |
|
System.DateTime |
|
System.DateTime |
|
System.Decimal |
|
System.Guid |
|
System.SByte |
|
System.Int16 |
|
System.Int32 |
|
System.Int64 |
|
System.Boolean |
|
System.Single |
|
System.Double |
|
System.Byte |
|
System.UInt16 |
|
System.UInt32 |
|
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.
Advertencia |
---|
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 |
---|---|
[!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.
|
Vea también
Referencia
ConvertBufferDataTypeToFitManaged