Работа с типами данных в потоке данных
При разработке пользовательского компонента потока данных в службах Integration Services постоянно идет работа с типами данных: копирование данных в буферы потока и из буферов потока, а также преобразование значений. Сведения, представленные в этом разделе, помогут выбрать нужные типы данных служб Integration Services и использовать правильные методы работы с ними.
Вставка данных в поток данных
Класс PipelineBuffer предоставляет ряд методов Set для копирования данных в столбцы буфера и соответствующий ряд методов Get для получения данных из столбцов буферов. В следующей таблице показано использование каждого метода с соответствующим типом данных служб Integration Services.
Использование методов Set с различными типами данных
В следующей таблице в первом столбце приводится список типов данных с соответствующими методами Set и Get.
Тип данных |
Метод Set |
Метод Get |
---|---|---|
К этому типу данных не применим ни один метод Get. |
||
Типы данных для использования с методами Set
Метод Set |
Тип данных |
---|---|
DT_CY, DT_DECIMAL или DT_NUMERIC |
|
DT_DBTIME или DT_DBTIME2 |
|
Сопоставление типов данных в потоке данных
При перемещении данных из источников в назначения через преобразования компонент потока данных нередко должен преобразовывать типы данных между типами служб 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 |
Сопоставляется с управляемым типом данных |
---|---|
System.String |
|
Массив элементов типа 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 |
Сопоставление типов данных служб Integration Services для соответствия управляемым типам данных
Иногда компонент потока данных должен также преобразовывать один тип данных служб Integration Services в другой, прежде чем его можно будет преобразовать в управляемый тип. Метод PipelineComponent..::..ConvertBufferDataTypeToFitManaged класса сопоставляет типы данных служб Integration Services с другими типами данных служб Integration Services, которые затем можно сопоставить с управляемыми типами данных с помощью метода PipelineComponent..::..BufferTypeToDataRecordType.
Внимание! |
---|
Разработчикам следует соблюдать осторожность в использовании методов класса PipelineComponent: может оказаться более удобным создать собственные методы сопоставления типов данных, более подходящие для уникальных задач разрабатываемых ими компонентов. В существующих методах не учитывается числовая точность и масштаб, а также другие свойства, тесно связанные с типом данных. В следующей версии служб Integration Services корпорация Майкрософт может изменить или удалить эти методы либо изменить выполняемое ими сопоставление. |
В следующей таблице представлены сопоставления типов данных служб Integration Services с другими типами данных служб Integration Services с помощью метода ConvertBufferDataTypeToFitManaged.
Исходный тип данных служб Integration Services |
Сопоставляется с типом данных служб Integration Services |
---|---|
Примечание |
---|
Метод ConvertBufferDataTypeToFitManaged не возвращает значение типа данных DT_DBTIMESTAMPOFFSET, поэтому возникает исключение UnsupportedBufferDataTypeException. Тип данных DT_DBTIMESTAMPOFFSET необходимо преобразовать в один из типов данных даты-времени служб Integration Services, который сопоставлен с управляемым типом данных. Список типов данных даты-времени служб Integration Services, который сопоставляется с управляемыми типами данных, см. в таблице в предыдущем подразделе «Сопоставление типов данных служб Integration Services и управляемых типов данных». Сведения о преобразовании типов данных см. в разделе Типы данных служб Integration Services. |
|
См. также