Condividi tramite


Provider di dati per DB2

Compatibilità della piattaforma

Conversioni delle tabelle codici

Il provider di dati supporta una combinazione di set di caratteri a un byte (SBCS), set di caratteri a byte misti (MBCS), set di caratteri a due byte (DBCS) e Unicode - UTF8 [1208], che è un formato di trasformazione Unicode a 8 bit.

CCSID host

Il provider di dati richiede di specificare un valore per CCSID (Coded Character Set Identifier) host con cui eseguire conversioni di tabelle codici su dati di tipo stringa. Il valore CCSID host predefinito è EBCDIC - U.S./Canada [37]. In genere, i server di database IBM DB2 per z/OS e IBM i usano EBCDIC (Codice interscambio decimale codificato binario esteso).

Tabella codici PC

Il provider di dati richiede un valore per la tabella codici PC con cui eseguire conversioni di tabelle codici su dati di tipo stringa. La tabella codici PC predefinita è ANSI - Latin I [1252]. In genere, i consumer di dati utilizzano ANSI (American National Standards Institute) o Unicode.

Elabora valore binario come carattere

I provider di dati per DB2 converte automaticamente in e da tipi di dati binari (CCSID 65535) e stringa di caratteri, in base al tipo di dati DB2 e al tipo di dati consumer windows. La codifica DB2 è determinata dal CCSID host. La codifica di Windows è determinata dalla tabella codici del PC.

Mapping dei tipi di dati

In questo argomento vengono descritti i mapping di tutti i tipi di dati a quelli di OLE DB.

Mapping dei tipi di dati da DB2 a ADO.NET

Nella tabella seguente vengono descritti i mapping dei tipi di dati DB2 ai tipi di dati ADO.NET Provider for DB2 (MsDb2Client) (MsDb2Type).

MsDb2Type Tipo di dati DB2 Descrizione
BigInt Bigint Un numero intero grande è un numero intero binario a 8 byte.
Binary Binary Un file binario è una stringa binaria a lunghezza fissa.
bit Smallint Un numero intero piccolo è un numero intero binario a due byte.
BLOB BLOB Un oggetto binario di grandi dimensioni è una stringa di lunghezza variabile usata per archiviare dati non testuali o binari.
Char Char Un carattere è una stringa SBCS o MBCS di lunghezza fissa.
CLOB CLOB Un oggetto grande carattere di lunghezza variabile è una stringa di lunghezza variabile. La lunghezza massima della stringa dipende dalla versione e dalla piattaforma DB2.
Data Data Un tipo di dati Date è una stringa di 10 byte.
DBCLOB DCLOB Un oggetto grande carattere a byte doppio a lunghezza variabile è una stringa a byte doppio a lunghezza variabile. La lunghezza massima della stringa dipende dalla versione e dalla piattaforma DB2.
Decimal Decimal Un tipo di dati Decimal è un numero decimale compresso.
Double Double Un tipo di dati Double è un numero di 8 byte a virgola mobile a precisione doppia.
Graphic Graphic Un tipo di dati Graphic è una stringa DBCS di lunghezza fissa.
Int Integer Un tipo di dati Integer è un intero binario di 4 byte.
Numeric Numeric Un tipo di dati Numeric è un numero decimale compresso.
Real Real Un tipo di dati Real è un numero di 4 byte a virgola mobile a singola precisione.
SmallInt Smallint Un numero intero piccolo è un numero intero binario a due byte.
Ora Ora Un tipo di dati Time è una stringa di 8 byte contenente un'ora.
Timestamp Timestamp Un tipo di dati TimesStamp è una stringa di 26 byte che rappresenta data, ora e microsecondi.
TinyInt Smallint Un numero intero piccolo è un numero intero binario a due byte.
VarBinary Varbinary Un file binario variabile è una stringa binaria a lunghezza variabile.
VarChar Varchar Un tipo di dati Varchar è una stringa di caratteri SBCS o MBCS di lunghezza variabile.
VarGraphic Vargraphic Un tipo di dati VarGraphic è una stringa di caratteri DBCS di lunghezza variabile.
VarWideChar Vargraphic Un elemento grafico variabile è una stringa Unicode di sola lunghezza variabile.
VarWideGraphic Vargraphic Un elemento grafico variabile è una stringa Unicode di sola lunghezza variabile.
WideChar Graphic Un elemento grafico è una stringa Unicode a lunghezza fissa.
Xml XML Stringa di documento XML ben formata.

Mapping dei tipi di dati da DB2 a OLE DB

Nella tabella seguente viene illustrato il mapping tra i tipi di dati DB2 e OLE DB.

Tipo di dati OLE DB Tipo di dati DB2 Descrizione
DBTYPE_I8 Bigint Un intero grande è un intero binario a 8 byte.
DBTYPE_Bytes BINARY Un binario è una stringa binaria a lunghezza fissa
DBTYPE_Bytes BLOB Un oggetto di grandi dimensioni binario è una stringa di lunghezza variabile usata per archiviare dati non testuali o binari.
DBTYPE_STR Char Un carattere è una stringa SBCS o MBCS di lunghezza fissa.
DBTYPE_WSTR Char Un carattere Unicode è una stringa MBCS di lunghezza fissa.
DBTYPE_STR CLOB Un oggetto di lunghezza variabile di grandi dimensioni è una stringa di lunghezza variabile. La lunghezza massima della stringa dipende dalla versione e dalla piattaforma DB2.
DBTYPE_DBDate Data Un tipo di dati Date è una stringa di 10 byte.
DBTYPE_Decimal Decimal Un tipo di dati Decimal è un numero decimale compresso.
DBTYPE_R8 Double Un tipo di dati Double è un numero di 8 byte a virgola mobile a precisione doppia.
DBTYPE_R8 Float Un tipo di dati Float è un numero di 8 byte a virgola mobile a precisione doppia.
DBTYPE_WSTR Graphic Un tipo di dati Graphic è una stringa DBCS di lunghezza fissa.
DBTYPE_I4 Integer Un tipo di dati Integer è un intero binario di 4 byte.
DBTYPE_STR Long Varchar Un tipo di dati Varchar è una stringa di caratteri SBCS o MBCS di lunghezza variabile.
DBTYPE_WSTR Long Varchar Stringa Unicode di lunghezza variabile variabile.
DBTYPE_WSTR Lunga vargrafica Un tipo di dati VarGraphic è una stringa di caratteri DBCS di lunghezza variabile.
DBTYPE_Numeric Numeric Un tipo di dati Numeric è un numero decimale compresso.
DBTYPE_I2 Smallint Un numero intero piccolo è un intero binario a due byte.
DBTYPE_R4 Real Un tipo di dati Real è un numero di 4 byte a virgola mobile a singola precisione.
DBTYPE_DBTime Ora Un tipo di dati Time è una stringa di 8 byte contenente un'ora.
DBTYPE_DBTimestamp Timestamp Un tipo di dati TimesStamp è una stringa di 26 byte che rappresenta data, ora e microsecondi.
DBTYPE_Bytes Varbinary Un binario variabile è una stringa binaria di lunghezza variabile.
DBTYPE_STR Varchar Un tipo di dati Varchar è una stringa di caratteri SBCS o MBCS di lunghezza variabile.
DBTYPE_WSTR Varchar Stringa Unicode di lunghezza variabile variabile.
DBTYPE_WSTR VarGraphic Un tipo di dati VarGraphic è una stringa di caratteri DBCS di lunghezza variabile.

Le informazioni sullo schema di OLE DB vengono recuperate utilizzando set predefiniti di righe dello schema con IDBSchemaRowset::GetRowset. Il provider di dati ha esposto il set di righe PROVIDER_TYPES per indicare il supporto del mapping dei tipi di dati da DB2 a OLE DB (tipi, mapping, limiti) in base alla piattaforma e alla versione di IBM DB2.

DB2 per z/OS

Il provider di dati supporta l'accesso a questi tipi di dati quando si è connessi a DB2 per z/OS.

DB2 Type_name OLE DB data_type Column_size Minimum_scale Maximum_scale
Smallint DBType_12 5
Integer DBType_14 10
Bigint DBType_18 19
Binary DBType_Bytes 255
Real DBType_R4 21
Float DBType_R8 53
Double DBType_R8 53
Decimal Dbtype_decimal 31 0 31
Graphic DBType_WSTR 127
VarGraphic DBType_WSTR 16352
Char DBType_STR 255
Varchar DBType_STR 32672
Char DBType_WSTR 255
Varchar DBType_WSTR 32672
Numeric DBType_Numeric 31 0 31
Data DBType_DBDate 10
Ora DBType_DBTime 8
Timestamp DBType_Timestamp 26
BLOB DBType_Bytes 2147483647
CLOB DBType_STR 2147483647
Long Varchar DBType_STR 32704
Long Varchar DBType_WSTR 32704
Long Vargraphic DBType_WSTR 16352
Varbinary DBTypte_Bytes 32704

DB2 per IBM i

Il provider di dati supporta l'accesso a questi tipi di dati quando si è connessi a DB2 per IBM i.

DB2 Type_name OLE DB data_type Column_size Minimum_scale Maximum_scale
Binary DBType_Bytes 32765
Smallint DBType_12 5
Integer DBType_14 10
Bigint DBType_18 19
Real DBType_R4 24
Float DBType_R8 53
Double DBType_R8 53
Decimal Dbtype_decimal 63 0 31
Graphic DBType_WSTR 16382
VarGraphic DBType_WSTR 16369
Char DBType_STR 32765
Varchar DBType_STR 32739
Char DBType_WSTR 32765
Varchar DBType_WSTR 32739
Numeric DBType_Numeric 31 0 31
Data DBType_DBDate 10
Ora DBType_DBTime 8
Timestamp DBType_Timestamp 26
BLOB DBType_Bytes 2147483647
CLOB DBType_STR 2147483647
Varbinary DBType_Bytes 32739

DB2 per LUW

Il provider di dati supporta l'accesso a questi tipi di dati quando si è connessi a DB2 per LUW.

DB2 Type_name OLE DB data_type Column_size Minimum_scale Maximum_scale
Binary DBType_Bytes 254
Smallint DBType_12 5
Integer DBType_14 10
Bigint DBType_18 19
Real DBType_R4 24
Float DBType_R8 53
Double DBType_R8 53
Decimal Dbtype_decimal 31 0 31
Graphic DBType_WSTR 127
VarGraphic DBType_WSTR 16336
Char DBType_STR 254
Varchar DBType_STR 4000
Char DBType_WSTR 254
Varchar DBType_WSTR 4000
Char() for BIT data DBType_Bytes 254
Varchar() for BIT data DBType_Bytes 32672
Numeric DBType_Numeric 31 0 31
Data DBType_DBDate 10
Ora DBType_DBTime 8
Timestamp DBType_Timestamp 26
BLOB DBType_Bytes 2147483647
CLOB DBType_STR 2147483647
Long Varchar DBType_STR 32700
Long Varchar DBType_STR 32700
Long Varchar DBType_WSTR 16350
Varbinary DBTYPE_BYTES 32762

SQL Server Integration Services

Quando si utilizzano le procedure guidate di importazione ed esportazione di SQL Server Integration Services da Microsoft SQL Server Management Studio, è possibile personalizzare le conversioni di dati predefinite modificando i file di mapping XML. I file XML si trovano in C:\Programmi\Microsoft SQL Server\130\DTSMappingFiles per 64 bit e C:\Programmi (x86)\Microsoft SQL Server\130\DTSMappingFiles per 32 bit.

Servizi di replica di SQL Server

È possibile che la replica di SQL Server converta erroneamente i dati, in base ai mapping predefiniti, dai tipi di dati di SQL Server a quelli di DB2. È consigliabile che l'amministratore e lo sviluppatore esaminino e verifichino i mapping dei tipi di dati di replica utilizzando le stored procedure di sistema di SQL Server riportate di seguito.