Mapping dei tipi di dati in ITableDefinition
In caso di creazione di tabelle tramite la funzione ITableDefinition::CreateTable , il consumer del provider OLE DB di SQL Server Native Client può specificare tipi di dati di SQL Server nel membro pwszTypeName della matrice DBCOLUMNDESC passata. Se il consumer specifica il tipo di dati di una colonna in base al nome, il mapping del tipo di dati OLE DB DB rappresentato dal membro wType della struttura DBCOLUMNDESC viene ignorato.
In caso di specifica dei nuovi tipi di dati di colonna con tipi di dati OLE DB DB mediante il membro wType della struttura DBCOLUMNDESC, il provider OLE DB di SQL Server Native Client esegue il mapping dei tipi di dati OLE DB DB come segue.
Tipo di dati OLE DB |
SQL Server tipo di dati |
Informazioni aggiuntive |
---|---|---|
DBTYPE_BOOL |
bit |
|
DBTYPE_BYTES |
binary, varbinary, image, o varbinary(max) |
Il provider OLE DB di SQL Server Native Client controlla il membro ulColumnSize della struttura DBCOLUMNDESC. In base al valore e alla versione dell'istanza di SQL Server, il provider OLE DB di SQL Server Native Client esegue il mapping del tipo a image. Se il valore di ulColumnSize è minore della lunghezza massima di una colonna del tipo di dati binary, il provider OLE DB di SQL Server Native Client controlla il membro rgPropertySets di DBCOLUMNDESC. Se DBPROP_COL_FIXEDLENGTH è VARIANT_TRUE, il provider OLE DB di SQL Server Native Client esegue il mapping del tipo a binary. Se il valore della proprietà è VARIANT_FALSE, il provider OLE DB di SQL Server Native Client esegue il mapping del tipo a varbinary. In entrambi i casi il membro ulColumnSize di DBCOLUMNDESC determina la larghezza della colonna di SQL Server creata. |
DBTYPE_CY |
money |
|
DBTYPE_DBTIMESTAMP |
datetime |
|
DBTYPE_GUID |
uniqueidentifier |
|
DBTYPE_I2 |
smallint |
|
DBTYPE_I4 |
int |
|
DBTYPE_NUMERIC |
numeric |
Il provider OLE DB di SQL Server Native Client controlla i membri bPrecision e bScale di DBCOLUMDESC per determinare la precisione e la scala per la colonna numeric. |
DBTYPE_R4 |
real |
|
DBTYPE_R8 |
float |
|
DBTYPE_STR |
char, varchar, text o varchar(max) |
Il provider OLE DB di SQL Server Native Client controlla il membro ulColumnSize della struttura DBCOLUMNDESC. In base al valore e alla versione dell'istanza di SQL Server, il provider OLE DB di SQL Server Native Client esegue il mapping del tipo a text. Se il valore di ulColumnSize è minore della lunghezza massima di una colonna del tipo di dati character multibyte, il provider OLE DB di SQL Server Native Client controlla il membro rgPropertySets di DBCOLUMNDESC. Se DBPROP_COL_FIXEDLENGTH è VARIANT_TRUE, il provider OLE DB di SQL Server Native Client esegue il mapping del tipo a char. Se il valore della proprietà è VARIANT_FALSE, il provider OLE DB di SQL Server Native Client esegue il mapping del tipo a varchar. In entrambi i casi il membro ulColumnSize di DBCOLUMNDESC determina la larghezza della colonna di SQL Server creata. |
DBTYPE_UDT |
Tipo definito dall'utente |
Le informazioni seguenti vengono utilizzate nelle strutture DBCOLUMNDESC impiegate da ITableDefinition::CreateTable quando sono necessarie colonne con tipo definito dall'utente:
|
DBTYPE_UI1 |
tinyint |
|
DBTYPE_WSTR |
nchar, nvarchar, ntext o nvarchar(max) |
Il provider OLE DB di SQL Server Native Client controlla il membro ulColumnSize della struttura DBCOLUMNDESC. In base al valore, il provider OLE DB di SQL Server Native Client esegue il mapping del tipo di dati a ntext. Se il valore di ulColumnSize è minore della lunghezza massima di una colonna del tipo di dati character Unicode , il provider OLE DB di SQL Server Native Client controlla il membro rgPropertySets di DBCOLUMNDESC. Se DBPROP_COL_FIXEDLENGTH è VARIANT_TRUE, il provider OLE DB di SQL Server Native Client esegue il mapping del tipo a nchar. Se il valore della proprietà è VARIANT_FALSE, il provider OLE DB di SQL Server Native Client esegue il mapping del tipo a nvarchar. In entrambi i casi il membro ulColumnSize di DBCOLUMNDESC determina la larghezza della colonna di SQL Server creata. |
DBTYPE_XML |
XML |
[!NOTA]
In caso di creazione di una nuova tabella, il provider OLE DB di SQL Server Native Client esegue il mapping solo dei valori di enumerazione del tipo di dati OLE DB specificati nella tabella precedente. Il tentativo di creare una tabella con una colonna di qualsiasi altro tipo di dati OLE DB DB genera un errore.