Utilizzo di tipi di dati nel flusso di dati

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. Le informazioni di questo argomento consentono di scegliere i tipi di dati di Integration Services corretti e di utilizzare i metodi corretti per gestirli.

Inserimento di dati nel flusso di dati

La classe PipelineBuffer fornisce una serie di metodi Set per la copia di dati in colonne del buffer e una serie corrispondente di metodi Get per il recupero dei dati dalle colonne del buffer. Nelle tabelle seguenti è indicato quale metodo utilizzare con ogni tipo di dati di Integration Services.

Metodi Set da utilizzare con i tipi di dati

Nella tabella seguente sono riportati i tipi di dati nella prima colonna e quindi i corrispondenti metodi Set e Get.

Tipo di dati

Metodo Set

Metodo Get

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

GetBlobData

DT_NTEXT

AddBlobData o AddBlobData

GetBlobData

DT_NULL

SetNull

A questo tipo di dati non è applicabile alcun metodo Get.

DT_NUMERIC

SetDecimal

GetDecimal

DT_R4

SetSingle

GetSingle

DT_R8

SetDouble

GetDouble

DT_STR

SetString

GetString

DT_TEXT

AddBlobData o 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 Set

Metodo Set

Tipo di dati

AddBlobData o AddBlobData

DT_IMAGE, DT_NTEXT o DT_TEXT

SetBoolean

DT_BOOL

SetByte

DT_UI1

SetBytes

DT_BYTES

SetDate

DT_DBDATE

SetDateTime

DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 o DT_FILETIME

SetDateTimeOffset

DT_DBTIMESTAMPOFFSET

SetDecimal

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

SetTime

DT_DBTIME oppure DT_DBTIME2

SetUInt16

DT_UI2

SetUInt32

DT_UI4

SetUInt64

DT_UI8

Mapping dei tipi di dati nel flusso di dati

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 i tipi di SQL Server Integration Services definiti nell'enumerazione DataType e i tipi di dati gestiti di Microsoft .NET Framework definiti nello spazio dei nomi System. Inoltre, un componente deve a volte convertire un tipo di dati di Integration Services in un altro affinché possa essere convertito in un tipo gestito.

[!NOTA]

I file di mapping in formato XML installati per impostazione predefinita in C:\Programmi\Microsoft SQL Server\110\DTS\MappingFiles non sono correlati al mapping dei tipi di dati descritto in questo argomento. 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 Server a Oracle, e vengono utilizzati solo dall'Importazione/Esportazione guidata di SQL Server. Per ulteriori informazioni su questi file di mapping, vedere Importazione ed esportazione guidata di SQL Server.

Mapping tra tipi di dati di Integration Services e tipi di dati gestiti

I metodi PipelineComponent.BufferTypeToDataRecordType e PipelineComponent.DataRecordTypeToBufferType eseguono il mapping dei tipi di dati di Integration Services a tipi di dati gestiti.

Nota di attenzioneAttenzione

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. I metodi esistenti non prendono in considerazione la precisione numerica o la scala o altre proprietà strettamente correlate al tipo di dati stesso. Microsoft potrà modificare o rimuovere questi metodi oppure modificare i mapping che eseguono in una versione futura di Integration Services.

Nella tabella seguente vengono illustrati i mapping dei metodi BufferTypeToDataRecordType e DataRecordTypeToBufferType di vari tipi di dati di Integration Services a tipi di dati gestiti.

Tipo di dati di Integration Services

Tipo di dati gestito mappato

DT_WSTR

System.String

DT_BYTES

Matrice di 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

Mapping dei tipi di dati di Integration Services in base ai tipi di dati gestiti

A volte, un componente del flusso di dati deve anche convertire un tipo di dati di Integration Services in un altro affinché possa essere convertito in un tipo gestito. La classe del metodo PipelineComponent.ConvertBufferDataTypeToFitManaged esegue il mapping dei tipi di dati di Integration Services ad altri tipi di dati di Integration Services che possono quindi essere mappati a tipi di dati gestiti tramite il metodo PipelineComponent.BufferTypeToDataRecordType.

Nota di attenzioneAttenzione

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. I metodi esistenti non prendono in considerazione la precisione numerica o la scala o altre proprietà strettamente correlate al tipo di dati stesso. Microsoft potrà modificare o rimuovere questi metodi oppure modificare i mapping che eseguono in una versione futura di Integration Services.

Nella tabella seguente vengono illustrati i mapping del metodo ConvertBufferDataTypeToFitManaged dei tipi di dati di Integration Services ad altri tipi di dati di Integration Services.

Tipo di dati originale di Integration Services

Tipo di dati di Integration Services mappato

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. È necessario convertire il tipo di dati DT_DBTIMESTAMPOFFSET in uno dei tipi di dati data/ora di Integration Services di cui è possibile eseguire il mapping a un tipo di dati gestito. Per un elenco di tipi di dati data/ora di Integration 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". Per informazioni sulla conversione dei tipi di dati, vedere Tipi di dati di Integration Services.

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per i download, gli articoli, gli esempi e i video Microsoft più recenti, oltre alle soluzioni selezionate dalla community, visitare la pagina Integration Services sul sito MSDN:


Per ricevere notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.

Vedere anche

Riferimento

BufferTypeToDataRecordType

DataRecordTypeToBufferType

ConvertBufferDataTypeToFitManaged

Concetti

Tipi di dati di Integration Services