データ フロー内のデータ型の処理
Integration Services のカスタム データ フロー コンポーネント開発には、データ フロー バッファーにデータをコピーしたり、データ フロー バッファーからデータを取得したり、値を変換したりするなど、常にデータ型の処理が伴います。このトピックでは、Integration Services データ型の正しい選択と、それを扱うための適切なメソッドの使用について説明します。
データ フローへのデータの挿入
PipelineBuffer クラスには、データをバッファー列にコピーするための一連の Set メソッドと、これらに対応して、データをバッファー列から取得するための一連の Get メソッドが用意されています。次の表は、Integration Services の各種データ型と使用できるメソッドの対応関係を示しています。
データ型に対して使用する Set メソッド
次の表は、データ型と Set メソッドおよび Get メソッドの対応関係を一覧にしたものです。
データ型 |
Set メソッド |
Get メソッド |
---|---|---|
このデータ型に適用できる Get メソッドはありません。 |
||
Set メソッドで使用するデータ型
Set メソッド |
データ型 |
---|---|
DT_DBTIME または DT_DBTIME2 |
|
データ フローでのデータ型のマッピング
変換を介して変換元から変換先にデータを移動する際に、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 データ型 |
マップ先のマネージ データ型 |
---|---|
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 データ型を、PipelineComponent..::..BufferTypeToDataRecordType メソッドを使ってマネージ データ型にマップすることのできる、他の Integration Services データ型にマップします。
注意 |
---|
開発者が PipelineComponent クラスのこれらのメソッドを使用する際には注意が必要です。また、カスタム コンポーネントの固有の要件により適した独自のデータ型マッピング メソッドのコーディングが必要になる場合もあります。既存のメソッドでは、数値有効桁数や小数点以下桁数が考慮されていない場合や、そのデータ型に密接に関連する他のプロパティについて考慮されていない場合があります。Integration Services の将来のバージョンでは、これらのメソッドが変更または削除されたり、これらのメソッドで行われるマッピングが変更される可能性があります。 |
次の表に、ConvertBufferDataTypeToFitManaged メソッドで、Integration Services データ型がどのように他の Integration Services データ型にマップされるかを示します。
元の Integration Services データ型 |
マップ先の Integration Services データ型 |
---|---|
注 |
---|
ConvertBufferDataTypeToFitManaged メソッドでは、DT_DBTIMESTAMPOFFSET データ型の値が返されず、UnsupportedBufferDataTypeException が発生します。DT_DBTIMESTAMPOFFSET データ型は、マネージ データ型にマップできる、Integration Services のいずれかの日付/時刻データ型に変換する必要があります。マネージ データ型にマップできる Integration Services 日付/時刻データ型の一覧については、前のセクション「Integration Services とマネージ データ型とのマッピング」の表を参照してください。データ型の変換の詳細については、「Integration Services のデータ型」を参照してください。 |
|