Verwenden von Datentypen im Datenfluss

Wenn Sie eine benutzerdefinierte Datenflusskomponente in Integration Services entwickeln, arbeiten Sie ständig mit Datentypen, kopieren Daten in und aus Datenflusspuffern und transformieren Werte. Mithilfe der Informationen in diesem Thema können Sie die geeigneten Integration Services-Datentypen und die richtigen Verwendungsmethoden auswählen.

Einfügen von Daten in den Datenfluss

Die PipelineBuffer-Klasse bietet eine Reihe von Set-Methoden für das Kopieren von Daten in Pufferspalten sowie eine weitere Reihe von Get-Methoden für das Abrufen von Daten aus Pufferspalten. In den folgenden Tabellen sehen Sie, welche Methode Sie für welchen Integration Services-Datentyp verwenden können.

Festlegen von Methoden zur Verwendung mit Datentypen

In der folgenden Tabelle sind die Datentypen in der ersten Spalte und dazu die entsprechenden Set- und Get-Methoden aufgelistet.

Datentyp

Set-Methode

Get-Methode

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 oder AddBlobData

GetBlobData

DT_NTEXT

AddBlobData oder AddBlobData

GetBlobData

DT_NULL

SetNull

Es gibt keine Get-Methode, die auf diesen Datentyp anwendbar ist.

DT_NUMERIC

SetDecimal

GetDecimal

DT_R4

SetSingle

GetSingle

DT_R8

SetDouble

GetDouble

DT_STR

SetString

GetString

DT_TEXT

AddBlobData oder AddBlobData

GetBlobData

DT_UI1

SetByte

GetByte

DT_UI2

SetUInt16

GetUInt16

DT_UI4

SetUInt32

GetUInt32

DT_UI8

SetUInt64

GetUInt64

DT_WSTR

SetString

GetString

Datentypen zur Verwendung mit der Set-Methode

Set-Methode

Datentyp

AddBlobData oder AddBlobData

DT_IMAGE, DT_NTEXT oder DT_TEXT

SetBoolean

DT_BOOL

SetByte

DT_UI1

SetBytes

DT_BYTES

SetDate

DT_DBDATE

SetDateTime

DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 oder DT_FILETIME

SetDateTimeOffset

DT_DBTIMESTAMPOFFSET

SetDecimal

DT_CY, DT_DECIMAL oder 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 oder DT_WSTR

SetTime

DT_DBTIME - oder - DT_DBTIME2

SetUInt16

DT_UI2

SetUInt32

DT_UI4

SetUInt64

DT_UI8

Zuordnen von Datentypen im Datenfluss

Wenn Daten durch Transformationen von der Quelle zum Ziel verschoben werden, muss eine Datenflusskomponente unter Umständen Datentypen zwischen den SQL Server Integration Services-Typen, die in der DataType-Enumeration definiert sind und den verwalteten Datentypen von Microsoft .NET Framework, die im System-Namespace definiert sind, konvertieren. Darüber hinaus muss eine Komponente gegebenenfalls einen Integration Services-Datentyp in einen anderen konvertieren, bevor dieser Typ in einen verwalteten Typ konvertiert werden kann.

HinweisHinweis

Die Zuordnungsdateien im XML-Format, die standardmäßig unter C:\Programme\Microsoft SQL Server\110\DTS\MappingFiles installiert werden, hängen nicht mit der in diesem Thema erläuterten Datentypzuordnung zusammen. Diese Dateien ordnen Datentypen aus einer Datenbankversion oder einem System zu (z. B. von SQL Server zu Oracle) und werden nur vom SQL Server-Import/Export-Assistenten verwendet. Weitere Informationen zu diesen Zuordnungsdateien finden Sie unter SQL Server-Import/Export-Assistent.

Zuordnungen zwischen Integration Services und verwalteten Datentypen

Die PipelineComponent.BufferTypeToDataRecordType- und die PipelineComponent.DataRecordTypeToBufferType-Methode ordnen Integration Services-Datentypen verwalteten Datentypen zu.

VorsichtshinweisVorsicht

Entwickler sollten bei der Verwendung der PipelineComponent-Klasse sorgfältig vorgehen und ggf. eigene Codedatentyp-Zuordnungsmethoden verwenden, die für die speziellen Anforderungen ihrer benutzerdefinierten Komponenten besser geeignet sind. Die vorhandenen Methoden berücksichtigen keine numerische Genauigkeit oder Dezimalstellen oder andere Eigenschaften, die eng mit dem Datentyp verbunden sind. Microsoft kann diese Methoden ändern oder entfernen oder die durchgeführten Zuordnungen in einer künftigen Version von Integration Services ändern.

In der folgenden Tabelle ist aufgeführt, wie die Methoden BufferTypeToDataRecordType und DataRecordTypeToBufferType verschiedene Integration Services-Datentypen verwalteten Datentypen zuordnen.

Integration Services-Datentyp

Entsprechender verwalteter Datentyp

DT_WSTR

System.String

DT_BYTES

Array von 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

Zuordnen von Integration Services-Datentypen zu optimierten verwalteten Datentypen

Unter Umständen muss eine Datenflusskomponente einen Integration Services-Datentyp in einen anderen konvertieren, bevor dieser Typ in einen verwalteten Typ konvertiert werden kann. Die PipelineComponent.ConvertBufferDataTypeToFitManaged-Methodenklasse ordnet Integration Services-Datentypen anderen Integration Services-Datentypen zu, die dann anhand der PipelineComponent.BufferTypeToDataRecordType-Methode verwalteten Datentypen zugeordnet werden können.

VorsichtshinweisVorsicht

Entwickler sollten bei der Verwendung der PipelineComponent-Klasse sorgfältig vorgehen und ggf. eigene Codedatentyp-Zuordnungsmethoden verwenden, die für die speziellen Anforderungen ihrer benutzerdefinierten Komponenten besser geeignet sind. Die vorhandenen Methoden berücksichtigen keine numerische Genauigkeit oder Dezimalstellen oder andere Eigenschaften, die eng mit dem Datentyp verbunden sind. Microsoft kann diese Methoden ändern oder entfernen oder die durchgeführten Zuordnungen in einer künftigen Version von Integration Services ändern.

In der folgenden Tabelle ist aufgeführt, wie die ConvertBufferDataTypeToFitManaged-Methode Integration Services-Datentypen anderen Integration Services-Datentypen zuordnet.

Ursprünglicher Integration Services-Datentyp

Entsprechender Integration Services-Datentyp

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

HinweisHinweis

Die ConvertBufferDataTypeToFitManaged-Methode gibt keinen Wert für den DT_DBTIMESTAMPOFFSET-Datentyp zurück, und es tritt ein UnsupportedBufferDataTypeException auf. Sie müssen den DT_DBTIMESTAMPOFFSET-Datentyp in einen der Datums-/Zeitdatentypen von Integration Services konvertieren, die einem verwalteten Datentyp zugeordnet werden können. Eine Liste der Datums-/Zeitdatentypen von Integration Services, die einem verwalteten Datentyp zugeordnet werden können, finden Sie in der Tabelle im vorhergehenden Abschnitt "Zuordnungen zwischen Integration Services und verwalteten Datentypen". Informationen zum Konvertieren von Datentypen finden Sie unter SQL Server Integration Services-Datentypen.

Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf MSDN auf der Integration Services-Seite:


Abonnieren Sie die auf der Seite verfügbaren RSS-Feeds, um automatische Benachrichtigungen zu diesen Updates zu erhalten.

Siehe auch

Verweis

BufferTypeToDataRecordType

DataRecordTypeToBufferType

ConvertBufferDataTypeToFitManaged

Konzepte

SQL Server Integration Services-Datentypen