次の方法で共有


データ フロー内のデータ型の処理

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_IMAGEDT_NTEXT、または DT_TEXT

SetBoolean

DT_BOOL

SetByte

DT_UI1

SetBytes

DT_BYTES

SetDate

DT_DBDATE

SetDateTime

DT_DATEDT_DBTIMESTAMPDT_DBTIMESTAMP2、または DT_FILETIME

SetDateTimeOffset

DT_DBTIMESTAMPOFFSET

SetDecimal

DT_CYDT_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

データ フローでのデータ型のマッピング

変換を介して変換元から変換先にデータを移動する際に、DataType 列挙で定義された SQL Server の Integration Services 型と、System 名前空間で定義された Microsoft .NET Framework のマネージ データ型との間で、データ フロー コンポーネントによるデータ型の変換が必要になる場合があります。 また、Integration Services データ型をマネージ型に変換する前に、別の型への変換が必要になる場合もあります。

注意

既定で C:\Program Files\Microsoft SQL Server\110\DTS\MappingFiles にインストールされる XML 形式のマッピング ファイルは、このトピックで説明するデータ型のマッピングには関連しません。 これらのファイルは、データ型をあるデータベース バージョンまたはシステムから別のデータベース バージョンまたはシステムにマップ (SQL Server から Oracle へのマッピングなど) したものであり、SQL Server のインポートおよびエクスポート ウィザードでのみ使用されます。 これらのマッピング ファイルの詳細については、「SQL Server インポートおよびエクスポート ウィザード」を参照してください。

Integration Services とマネージ データ型とのマッピング

PipelineComponent.BufferTypeToDataRecordType メソッドおよび PipelineComponent.DataRecordTypeToBufferType メソッドは、Integration Services のデータ型をマネージ データ型にマップします。

注記注意

開発者が PipelineComponent クラスのこれらのメソッドを使用する際には注意が必要です。また、カスタム コンポーネントの固有の要件により適した独自のデータ型マッピング メソッドのコーディングが必要になる場合もあります。 既存のメソッドでは、数値有効桁数や小数点以下桁数が考慮されていません。また、他のプロパティは、データ型そのものに密接に関連します。 Microsoft Integration Services の将来のバージョンでは、これらのメソッドが変更または削除されたり、メソッドが実行するマッピングが変更されたりする可能性があります。

次の表に、BufferTypeToDataRecordType メソッドおよび DataRecordTypeToBufferType メソッドで、各種の Integration Services データ型がどのようにマネージ データ型にマップされるかを示します。

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 データ型を、PipelineComponent.BufferTypeToDataRecordType メソッドを使ってマネージ データ型にマップすることのできる、他の Integration Services データ型にマップします。

注記注意

開発者が PipelineComponent クラスのこれらのメソッドを使用する際には注意が必要です。また、カスタム コンポーネントの固有の要件により適した独自のデータ型マッピング メソッドのコーディングが必要になる場合もあります。 既存のメソッドでは、数値有効桁数や小数点以下桁数が考慮されていません。また、他のプロパティは、データ型そのものに密接に関連します。 Microsoft Integration Services の将来のバージョンでは、これらのメソッドが変更または削除されたり、メソッドが実行するマッピングが変更されたりする可能性があります。

次の表に、ConvertBufferDataTypeToFitManaged メソッドで、Integration Services データ型がどのように他の Integration Services データ型にマップされるかを示します。

元の 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 のアイコン (小) 最新の Integration Services の入手

マイクロソフトが提供する最新のダウンロード、アーティクル、サンプル、ビデオ、およびコミュニティで選択されたソリューションについては、MSDN の Integration Services のページを参照してください。


これらの更新が自動で通知されるようにするには、ページの RSS フィードを定期受信します。

関連項目

参照

BufferTypeToDataRecordType

DataRecordTypeToBufferType

ConvertBufferDataTypeToFitManaged

概念

Integration Services のデータ型