Condividi tramite


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:

  • pwSzTypeName viene ignorato.

  • rgPropertySets deve includere un set di proprietà DBPROPSET_SQLSERVERCOLUMN, in base a quanto indicato nella sezione relativa a DBPROPSET_SQLSERVERCOLUMN in Utilizzo dei tipi definiti dall'utente (UDT).

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.

Vedere anche

Concetti