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

Integration Services のカスタム データ フロー コンポーネント開発には、データ フロー バッファーにデータをコピーしたり、データ フロー バッファーからデータを取得したり、値を変換したりするなど、常にデータ型の処理が伴います。このトピックでは、Integration Services データ型の正しい選択と、それを扱うための適切なメソッドの使用について説明します。

データ フローへのデータの挿入

PipelineBuffer クラスには、データをバッファー列にコピーするための一連の Set メソッドと、これらに対応して、データをバッファー列から取得するための一連の Get メソッドが用意されています。次の表は、Integration Services の各種データ型と使用できるメソッドの対応関係を示しています。

データ型に対して使用する Set メソッド

Set メソッドで使用するデータ型

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

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

注意

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

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

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

注記注意

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

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

注意

ConvertBufferDataTypeToFitManaged メソッドでは、DT_DBTIMESTAMPOFFSET データ型の値が返されず、UnsupportedBufferDataTypeException が発生します。DT_DBTIMESTAMPOFFSET データ型は、マネージ データ型にマップできる、Integration Services のいずれかの日付/時刻データ型に変換する必要があります。マネージ データ型にマップできる Integration Services 日付/時刻データ型の一覧については、前のセクション「Integration Services とマネージ データ型とのマッピング」の表を参照してください。データ型の変換の詳細については、「Integration Services のデータ型」を参照してください。

Integration Services のアイコン (小) 最新の Integration Services の入手

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

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