Utilizzo di tipi di dati nel flusso di datiWorking with Data Types in the Data Flow

Quando si sviluppa un componente del flusso di dati personalizzato in Integration Services, si utilizzano costantemente i tipi di dati, copiando dati in e dai buffer del flusso di dati e trasformando valori.When developing a custom data flow component in Integration Services, you work constantly with data types, copying data into and out of data flow buffers and transforming values. Le informazioni di questo argomento consentono di scegliere i tipi di dati di Integration ServicesIntegration Services corretti e di utilizzare i metodi corretti per gestirli.The information in this topic helps you to choose the correct Integration ServicesIntegration Services data types, and to use the correct methods when working with them.

Inserimento di dati nel flusso di datiInserting Data into the Data Flow

Il PipelineBuffer classe fornisce una serie di impostare metodi per la copia di dati nelle colonne del buffer e una serie corrispondente di ottenere metodi per recuperare dati dalle colonne del buffer.The PipelineBuffer class provides a series of Set methods for copying data into buffer columns, and a corresponding series of Get methods for retrieving data from buffer columns. Le tabelle seguenti illustrano il metodo da utilizzare con ogni Integration ServicesIntegration Services tipo di dati.The following tables show you which method to use with each Integration ServicesIntegration Services data type.

Metodi Set da utilizzare con i tipi di datiSet Methods to use with Data Types

Nella tabella seguente elenca il tipo di dati nella prima colonna e vengono quindi elencati corrispondente impostare e ottenere metodi.The following table lists the data type in the first column, and then lists the corresponding Set and Get methods.

Tipo di datiData Type Metodo SetSet Method Metodo GetGet Method
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 AddBlobDataoAddBlobDataAddBlobData or AddBlobData GetBlobData
DT_NTEXT AddBlobDataoAddBlobDataAddBlobData or AddBlobData GetBlobData
DT_NULL SetNull Non esiste alcun ottenere metodo applicabile per questo tipo di dati.There is no Get method that is applicable to this data type.
DT_NUMERIC SetDecimal GetDecimal
DT_R4 SetSingle GetSingle
DT_R8 SetDouble GetDouble
DT_STR SetString GetString
DT_TEXT AddBlobDataoAddBlobDataAddBlobData or AddBlobData GetBlobData
DT_UI1 SetByte GetByte
DT_UI2 SetUInt16 GetUInt16
DT_UI4 SetUInt32 GetUInt32
DT_UI8 SetUInt64 GetUInt64
DT_WSTR SetString GetString

Tipi di dati da utilizzare con i metodi SetData Types to Use with the Set Methods

Metodo SetSet Method Tipo di datiData Type
AddBlobDataoAddBlobDataAddBlobData or AddBlobData DT_IMAGE, DT_NTEXT o DT_TEXTDT_IMAGE, DT_NTEXT, or DT_TEXT
SetBoolean DT_BOOL
SetByte DT_UI1
SetBytes DT_BYTES
SetDate DT_DBDATE
SetDateTime DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 o DT_FILETIMEDT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, or DT_FILETIME
SetDateTimeOffset DT_DBTIMESTAMPOFFSET
SetDecimal DT_CY, DT_DECIMAL o DT_NUMERICDT_CY, DT_DECIMAL, or 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_STRoDT_WSTRDT_STR or DT_WSTR
SetTime DT_DBTIMEoDT_DBTIME2DT_DBTIME or DT_DBTIME2
SetUInt16 DT_UI2
SetUInt32 DT_UI4
SetUInt64 DT_UI8

Mapping dei tipi di dati nel flusso di datiMapping Data Types in the Data Flow

Durante lo spostamento di dati dalle origini attraverso le trasformazioni alle destinazioni, un componente del flusso di dati deve a volte convertire i tipi di dati tra il SQL ServerSQL Server Integration ServicesIntegration Services tipi definiti nel DataType enumerazione e tipi di dati gestiti il MicrosoftMicrosoft .NET Framework.NET Framework definito nel sistema dello spazio dei nomi.While moving data from sources through transformations to destinations, a data flow component must sometimes convert data types between the SQL ServerSQL Server Integration ServicesIntegration Services types defined in the DataType enumeration and the managed data types of the MicrosoftMicrosoft .NET Framework.NET Framework defined in the System namespace. Inoltre, un componente deve a volte convertire un tipo di dati di Integration ServicesIntegration Services in un altro affinché possa essere convertito in un tipo gestito.In addition, a component must sometimes convert one Integration ServicesIntegration Services data type to another before that type can be converted to a managed type.

Nota

I file di mapping in formato XML installati per impostazione predefinita in C:\Program Files\Microsoft SQL Server\130\DTS\MappingFiles non sono correlati al mapping del tipo di dati descritti in questo argomento.The mapping files in XML format that are installed by default to C:\Program Files\Microsoft SQL Server\130\DTS\MappingFiles are not related to the data type mapping discussed in this topic. Questi file consentono di eseguire il mapping dei tipi di dati da un sistema o una versione di database a un'altra, ad esempio da SQL ServerSQL Server a Oracle, e vengono utilizzati solo dall'Importazione/Esportazione guidata di SQL ServerSQL Server.These files map data types from one database version or system to another (for example, from SQL ServerSQL Server to Oracle), and are used only by the SQL ServerSQL Server Import and Export Wizard. Per ulteriori informazioni su questi file di mapping, vedere SQL Server di importazione / esportazione guidata.For more information on these mapping files, see SQL Server Import and Export Wizard.

Mapping tra tipi di dati di Integration Services e tipi di dati gestitiMapping between Integration Services and Managed Data Types

I metodi BufferTypeToDataRecordType e DataRecordTypeToBufferType eseguono il mapping dei tipi di dati di Integration ServicesIntegration Services a tipi di dati gestiti.The BufferTypeToDataRecordType and the DataRecordTypeToBufferType methods map Integration ServicesIntegration Services data types to managed data types.

Attenzione

Gli sviluppatori devono utilizzare questi metodi della classe PipelineComponent con attenzione e possono scegliere di creare metodi di mapping dei tipi di dati personalizzati più appropriati per le esigenze specifiche dei loro componenti personalizzati.Developers should use these methods of the PipelineComponent class with caution, and may want to code data type mapping methods of their own that are more suited to the unique needs of their custom components. I metodi esistenti non prendono in considerazione la precisione numerica o la scala o altre proprietà strettamente correlate al tipo di dati stesso.The existing methods do not consider numeric precision or scale, or other properties closely related to the data type itself. MicrosoftMicrosoft potrà modificare o rimuovere questi metodi oppure modificare i mapping che eseguono in una versione futura di Integration ServicesIntegration Services. may modify or remove these methods, or modify the mappings that they perform, in a future version of Integration ServicesIntegration Services.

Nella tabella seguente vengono illustrati i mapping dei metodi BufferTypeToDataRecordType e DataRecordTypeToBufferType di vari tipi di dati di Integration ServicesIntegration Services a tipi di dati gestiti.The following table lists how the BufferTypeToDataRecordType and the DataRecordTypeToBufferType methods map various Integration ServicesIntegration Services data types to managed data types.

Tipo di dati di Integration ServicesIntegration Services Data Type Tipo di dati gestito mappatoMaps to this Managed Data Type
DT_WSTR System.StringSystem.String
DT_BYTES Matrice di System.ByteArray of System.Byte
DT_DBTIMESTAMP System.DateTimeSystem.DateTime
DT_DBTIMESTAMP2 System.DateTimeSystem.DateTime
DT_DBTIMESTAMPOFFSET System.DateTimeOffsetSystem.DateTimeOffset
DT_DBDATE System.DateTimeSystem.DateTime
DT_DBTIME System.TimeSpanSystem.TimeSpan
DT_DBTIME2 System.TimeSpanSystem.TimeSpan
DT_DATE System.DateTimeSystem.DateTime
DT_FILETIME System.DateTimeSystem.DateTime
DT_NUMERIC System.DecimalSystem.Decimal
DT_GUID System.GuidSystem.Guid
DT_I1 System.SByteSystem.SByte
DT_I2 System.Int16System.Int16
DT_I4 System.Int32System.Int32
DT_I8 System.Int64System.Int64
DT_BOOL System.BooleanSystem.Boolean
DT_R4 System.SingleSystem.Single
DT_R8 System.DoubleSystem.Double
DT_UI1 System.ByteSystem.Byte
DT_UI2 System.UInt16System.UInt16
DT_UI4 System.UInt32System.UInt32
DT_UI8 System.UInt64System.UInt64

Mapping dei tipi di dati di Integration Services in base ai tipi di dati gestitiMapping Integration Services Data Types to Fit Managed Data Types

A volte, un componente del flusso di dati deve anche convertire un tipo di dati di Integration ServicesIntegration Services in un altro affinché possa essere convertito in un tipo gestito.Sometimes a data flow component must also convert one Integration ServicesIntegration Services data type to another before that type can be converted to a managed type. Il ConvertBufferDataTypeToFitManaged metodo classe mappe Integration ServicesIntegration Services tipi di dati da altri Integration ServicesIntegration Services tipi di dati che possono quindi essere mappati a tipi di dati gestiti tramite il BufferTypeToDataRecordType (metodo).The ConvertBufferDataTypeToFitManaged method class maps Integration ServicesIntegration Services data types to other Integration ServicesIntegration Services data types that can then be mapped to managed data types by using the BufferTypeToDataRecordType method.

Attenzione

Gli sviluppatori devono utilizzare questi metodi della classe PipelineComponent con attenzione e possono scegliere di creare metodi di mapping dei tipi di dati personalizzati più appropriati per le esigenze specifiche dei loro componenti personalizzati.Developers should use these methods of the PipelineComponent class with caution, and may want to code data type mapping methods of their own that are more suited to the unique needs of their custom components. I metodi esistenti non prendono in considerazione la precisione numerica o la scala o altre proprietà strettamente correlate al tipo di dati stesso.The existing methods do not consider numeric precision or scale, or other properties closely related to the data type itself. MicrosoftMicrosoft potrà modificare o rimuovere questi metodi oppure modificare i mapping che eseguono in una versione futura di Integration ServicesIntegration Services. may modify or remove these methods, or modify the mappings that they perform, in a future version of Integration ServicesIntegration Services.

Nella tabella seguente vengono illustrati i mapping del metodo ConvertBufferDataTypeToFitManaged dei tipi di dati di Integration ServicesIntegration Services ad altri tipi di dati di Integration ServicesIntegration Services.The following table lists how the ConvertBufferDataTypeToFitManaged method maps Integration ServicesIntegration Services data types to other Integration ServicesIntegration Services data types.

Tipo di dati originale di Integration ServicesOriginal Integration Services Data Type Tipo di dati di Integration Services mappatoMaps to this Integration Services Data Type
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
Nota

Il metodo ConvertBufferDataTypeToFitManaged non restituisce un valore per il tipo di dati DT_DBTIMESTAMPOFFSET e si verifica UnsupportedBufferDataTypeException.The ConvertBufferDataTypeToFitManaged method does not return a value for the DT_DBTIMESTAMPOFFSET data type, and a UnsupportedBufferDataTypeException occurs. È necessario convertire il tipo di dati DT_DBTIMESTAMPOFFSET in uno dei tipi di dati data/ora di Integration ServicesIntegration Services di cui è possibile eseguire il mapping a un tipo di dati gestito.You must convert the DT_DBTIMESTAMPOFFSET data type to one of the Integration ServicesIntegration Services date/time data types that can be mapped to a managed data type. Per un elenco di tipi di dati data/ora di Integration ServicesIntegration Services di cui è possibile eseguire il mapping a un tipo di dati gestito, vedere la tabella della sezione precedente, "Mapping tra tipi di dati di Integration Services e tipi di dati gestiti".For a list of Integration ServicesIntegration Services date/time data types that can be mapped to a managed data types, see the table in the previous section, "Mapping between Integration Services and Managed Data Types." Per informazioni sulla conversione di tipi di dati, vedere tipi di dati di Integration Services.For information about converting data types, see Integration Services Data Types.

Vedere ancheSee Also

BufferTypeToDataRecordTypeBufferTypeToDataRecordType
DataRecordTypeToBufferTypeDataRecordTypeToBufferType
ConvertBufferDataTypeToFitManagedConvertBufferDataTypeToFitManaged
Tipi di dati di Integration ServicesIntegration Services Data Types