使用資料流程中的資料類型

在 Integration Services 中開發自訂資料流程元件時,您會持續處理資料類型、將資料複製到資料流程緩衝區或是從其中複製出來,以及轉換值。在本主題中的資訊可協助您選擇正確的 Integration Services 資料類型,以及正確的處理方法。

將資料插入資料流程

PipelineBuffer 類別提供一系列的 Set 方法,可將資料複製到緩衝區資料行,並提供一系列對應的 Get 方法,可從緩衝區資料行擷取資料。下表顯示每個 Integration Services 資料類型要使用哪個方法。

資料類型使用的 Set 方法

與 Set 方法搭配使用的資料類型

對應資料流程中的資料類型

將資料從來源透過轉換移到目的地時,資料流程元件有時必須在定義於 DataType 列舉中的 SQL Server Integration Services 類型,以及定義於 System 命名空間的 Microsoft .NET Framework 之 Managed 資料類型之間轉換資料類型。此外,元件有時必須先將某個 Integration Services 資料類型轉換到另一個資料類型,才能將該類型轉換為 Managed 類型。

[!附註]

預設安裝在 C:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles 中的 XML 格式之對應檔案,與本主題所討論的資料類型對應並不相關。這些檔案是將資料類型從某個資料庫版本或是系統對應至另一個資料庫版本或是系統 (例如,從 SQL Server 2000 對應至 SQL Server,或是從 SQL Server 對應至 Oracle),而且只能用於 SQL Server 匯入和匯出精靈。如需有關這些對應檔案的詳細資訊,請參閱<使用 SQL Server 匯入和匯出精靈移動資料>。

Integration Services 資料類型與 Managed 資料類型之間的對應

PipelineComponent..::..BufferTypeToDataRecordTypePipelineComponent..::..DataRecordTypeToBufferType 方法會將 Integration Services 資料類型對應到 Managed 資料類型。

警告注意事項注意

開發人員應該謹慎地使用 PipelineComponent 類別的這些方法,而且可能會想要撰寫自己的資料類型對應方法程式碼,以便能更加符合其自訂元件的獨特需求。現有方法不會考慮數值有效位數或小數位數,或是與資料類型本身密切相關的其他屬性。Microsoft 可能會在 Integration Services 的未來版本中修改或移除這些方法,或是修改方法所執行的對應。

下表列出 BufferTypeToDataRecordTypeDataRecordTypeToBufferType 方法如何將各種 Integration Services 資料類型對應至 Managed 資料類型。

Integration Services 資料類型

對應至此 Managed 資料類型

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 資料類型以符合 Managed 資料類型

有時資料流程元件必須也先將某個 Integration Services 資料類型轉換到另一個資料類型,才能將該類型轉換為 Managed 類型。PipelineComponent..::..ConvertBufferDataTypeToFitManaged 方法類別會將 Integration Services 資料類型對應至其他可以由 PipelineComponent..::..BufferTypeToDataRecordType 方法對應至 Managed 資料類型的 Integration Services 資料類型。

警告注意事項注意

開發人員應該謹慎地使用 PipelineComponent 類別的這些方法,而且可能會想要撰寫自己的資料類型對應方法程式碼,以便能更加符合其自訂元件的獨特需求。現有方法不會考慮數值有效位數或小數位數,或是與資料類型本身密切相關的其他屬性。Microsoft 可能會在 Integration Services 的未來版本中修改或移除這些方法,或是修改方法所執行的對應。

下表列出 ConvertBufferDataTypeToFitManaged 方法如何將 Integration Services 資料類型對應至其他 Integration Services 資料類型。

[!附註]

ConvertBufferDataTypeToFitManaged 方法不會傳回 DT_DBTIMESTAMPOFFSET 資料類型的值,而且會發生 UnsupportedBufferDataTypeException。您必須將 DT_DBTIMESTAMPOFFSET 資料類型轉換為其中一個可以對應至 Managed 資料類型的 Integration Services 日期/時間資料類型。如需可以對應至 Managed 資料類型的 Integration Services 日期/時間資料類型清單,請參閱上一節「Integration Services 資料類型與 Managed 資料類型之間的對應>中的表格。如需有關轉換資料類型的詳細資訊,請參閱<Integration Services 資料類型>。

Integration Services 圖示 (小) 掌握 Integration Services 的最新狀態

若要取得 Microsoft 的最新下載、文件、範例和影片以及社群中的選定解決方案,請瀏覽 MSDN 或 TechNet 上的 Integration Services 頁面:

若要得到這些更新的自動通知,請訂閱該頁面上所提供的 RSS 摘要。