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


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

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

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

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

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

В следующей таблице в первом столбце приводится список типов данных с соответствующими методами Set и Get.

Тип данных

Метод Set

Метод 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 либо AddBlobData

GetBlobData

DT_NTEXT

AddBlobData либо AddBlobData

GetBlobData

DT_NULL

SetNull

К этому типу данных не применим ни один метод Get.

DT_NUMERIC

SetDecimal

GetDecimal

DT_R4

SetSingle

GetSingle

DT_R8

SetDouble

GetDouble

DT_STR

SetString

GetString

DT_TEXT

AddBlobData или AddBlobData

GetBlobData

DT_UI1

SetByte

GetByte

DT_UI2

SetUInt16

GetUInt16

DT_UI4

SetUInt32

GetUInt32

DT_UI8

SetUInt64

GetUInt64

DT_WSTR

SetString

GetString

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

Метод Set

Тип данных

AddBlobData или AddBlobData

DT_IMAGE, DT_NTEXT или DT_TEXT

SetBoolean

DT_BOOL

SetByte

DT_UI1

SetBytes

DT_BYTES

SetDate

DT_DBDATE

SetDateTime

DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 или DT_FILETIME

SetDateTimeOffset

DT_DBTIMESTAMPOFFSET

SetDecimal

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

SetTime

DT_DBTIME либо DT_DBTIME2

SetUInt16

DT_UI2

SetUInt32

DT_UI4

SetUInt64

DT_UI8

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

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

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

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

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

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

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

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

В следующей таблице представлены сопоставления различных типов данных служб Службы 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 корпорация Microsoft может изменить или удалить эти методы либо изменить выполняемое ими сопоставление.

В следующей таблице представлены сопоставления типов данных служб Службы 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:


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

См. также

Справочник

BufferTypeToDataRecordType

DataRecordTypeToBufferType

ConvertBufferDataTypeToFitManaged

Основные понятия

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