Поделиться через


Работа с типами данных в потоке данных

При разработке пользовательского компонента потока данных в службах Integration Services постоянно идет работа с типами данных: копирование данных в буферы потока и из буферов потока, а также преобразование значений. Сведения, представленные в этом разделе, помогут выбрать нужные типы данных служб Integration Services и использовать правильные методы работы с ними.

Вставка данных в поток данных

Класс PipelineBuffer предоставляет ряд методов Set для копирования данных в столбцы буфера и соответствующий ряд методов Get для получения данных из столбцов буферов. В следующей таблице показано использование каждого метода с соответствующим типом данных служб Integration Services.

Использование методов Set с различными типами данных

Типы данных для использования с методами Set

Сопоставление типов данных в потоке данных

При перемещении данных из источников в назначения через преобразования компонент потока данных нередко должен преобразовывать типы данных между типами служб SQL ServerIntegration Services, определенными в перечислении DataType, и управляемыми типами данных платформы Microsoft.NET Framework, определенными в пространстве имен System. Кроме того, компонент иногда должен преобразовывать один тип данных служб Integration Services в другой, прежде чем его можно будет преобразовать в управляемый тип.

ПримечаниеПримечание

Файлы сопоставления в XML-формате, установленные по умолчанию в папку C:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles, не связаны с сопоставлением типов данных в этом разделе. Эти файлы сопоставляют типы данных одной версии базы данных или системы в другой (например, из версии SQL Server 2000 в версию SQL Server или из SQL Server в Oracle) и используются только мастером импорта и экспорта SQL Server. Дополнительные сведения о файлах сопоставлений см. в разделе Импорт и экспорт данных с помощью мастера импорта и экспорта SQL Server.

Сопоставление типов данных служб Integration Services и управляемых типов данных

Методы PipelineComponent..::..BufferTypeToDataRecordType и PipelineComponent..::..DataRecordTypeToBufferType сопоставляют типы данных служб Integration Services с управляемыми типами данных.

ПредупреждениеВнимание!

Разработчикам следует соблюдать осторожность при использовании методов класса PipelineComponent: может оказаться более удобным написать собственные методы сопоставления типов данных, более подходящие для специальных задач разрабатываемых ими компонентов. В существующих методах не учитывается числовая точность и масштаб, а также другие свойства, тесно связанные с типом данных. В следующей версии служб Integration Services корпорация Майкрософт может изменить или удалить эти методы либо изменить выполняемое ими сопоставление.

В следующей таблице представлены сопоставления различных типов данных служб Integration Services с управляемыми типами данных с помощью методов BufferTypeToDataRecordType и DataRecordTypeToBufferType

Тип данных служб Integration Services

Сопоставляется с управляемым типом данных

DT_WSTR

System.String

DT_BYTES

Массив элементов типа 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

Сопоставление типов данных служб Integration Services для соответствия управляемым типам данных

Иногда компонент потока данных должен также преобразовывать один тип данных служб Integration Services в другой, прежде чем его можно будет преобразовать в управляемый тип. Метод PipelineComponent..::..ConvertBufferDataTypeToFitManaged класса сопоставляет типы данных служб Integration Services с другими типами данных служб Integration Services, которые затем можно сопоставить с управляемыми типами данных с помощью метода PipelineComponent..::..BufferTypeToDataRecordType.

ПредупреждениеВнимание!

Разработчикам следует соблюдать осторожность в использовании методов класса PipelineComponent: может оказаться более удобным создать собственные методы сопоставления типов данных, более подходящие для уникальных задач разрабатываемых ими компонентов. В существующих методах не учитывается числовая точность и масштаб, а также другие свойства, тесно связанные с типом данных. В следующей версии служб Integration Services корпорация Майкрософт может изменить или удалить эти методы либо изменить выполняемое ими сопоставление.

В следующей таблице представлены сопоставления типов данных служб Integration Services с другими типами данных служб Integration Services с помощью метода ConvertBufferDataTypeToFitManaged.

Исходный тип данных служб Integration Services

Сопоставляется с типом данных служб 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

ПримечаниеПримечание

Метод ConvertBufferDataTypeToFitManaged не возвращает значение типа данных DT_DBTIMESTAMPOFFSET, поэтому возникает исключение UnsupportedBufferDataTypeException. Тип данных DT_DBTIMESTAMPOFFSET необходимо преобразовать в один из типов данных даты-времени служб Integration Services, который сопоставлен с управляемым типом данных. Список типов данных даты-времени служб Integration Services, который сопоставляется с управляемыми типами данных, см. в таблице в предыдущем подразделе «Сопоставление типов данных служб Integration Services и управляемых типов данных». Сведения о преобразовании типов данных см. в разделе Типы данных служб Integration Services.

Значок служб Integration Services (маленький)Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.