Share via


Mapping dei tipi di dati in ITableDefinition

Si applica a: SQL Server Azure SQL DatabaseIstanza gestita di SQL di Azure Azure SynapseAnalytics AnalyticsPlatform System (PDW)

Scaricare il driver OLE DB

In caso di creazione di tabelle tramite la funzione ITableDefinition::CreateTable, il consumer di Microsoft OLE DB Driver per SQL Server 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 rappresentato dal membro wType della struttura DBCOLUMNDESC viene ignorato.

Per specificare nuovi tipi di dati di colonna con tipi di dati OLE DB mediante il membro wType della struttura DBCOLUMNDESC, il driver OLE DB per SQL Server esegue il mapping dei tipi di dati OLE 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) OLE DB Driver per SQL Server controlla il membro ulColumnSize della struttura DBCOLUMNDESC. In base al valore e alla versione dell'istanza di SQL Server, OLE DB Driver per SQL Server 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 driver OLE DB per SQL Server controlla il membro rgPropertySets di DBCOLUMNDESC. Se DBPROP_COL_FIXEDLENGTH è VARIANT_TRUE, OLE DB Driver per SQL Server esegue il mapping del tipo a binary. Se il valore della proprietà è VARIANT_FALSE, OLE DB Driver per SQL Server 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 datetime2
DBTYPE_GUID uniqueidentifier
DBTYPE_I2 smallint
DBTYPE_I4 int
DBTYPE_I8 bigint
DBTYPE_NUMERIC numeric Il driver OLE DB per SQL Server 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) OLE DB Driver per SQL Server controlla il membro ulColumnSize della struttura DBCOLUMNDESC. In base al valore e alla versione dell'istanza di SQL Server, OLE DB Driver per SQL Server esegue il mapping del tipo a text.

Se il valore di ulColumnSize è minore della lunghezza massima di una colonna del tipo di dati multibyte, il driver OLE DB per SQL Server controlla il membro rgPropertySets di DBCOLUMNDESC. Se DBPROP_COL_FIXEDLENGTH è VARIANT_TRUE, OLE DB Driver per SQL Server esegue il mapping del tipo a char. Se il valore della proprietà è VARIANT_FALSE, OLE DB Driver per SQL Server 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 UDT Le informazioni seguenti vengono usate nelle strutture DBCOLUMNDESC impiegate da ITableDefinition::CreateTable quando sono necessarie colonne di tipo definito dall'utente:

pwSzTypeName viene ignorato.

rgPropertySets deve includere un set di proprietà DBPROPSET_SQLSERVERCOLUMN, come descritto nella sezione DBPROPSET_SQLSERVERCOLUMN, in Uso dei tipi definiti dall'utente.
DBTYPE_UI1 tinyint
DBTYPE_VARIANT sql_variant
DBTYPE_WSTR nchar, nvarchar, ntext, o nvarchar(max) OLE DB Driver per SQL Server controlla il membro ulColumnSize della struttura DBCOLUMNDESC. In base al valore, OLE DB Driver per SQL Server esegue il mapping del tipo a ntext.

Se il valore di ulColumnSize è minore della lunghezza massima di una colonna del tipo di dati Unicode, il driver OLE DB per SQL Server controlla il membro rgPropertySets di DBCOLUMNDESC. Se DBPROP_COL_FIXEDLENGTH è VARIANT_TRUE, OLE DB Driver per SQL Server esegue il mapping del tipo a nchar. Se il valore della proprietà è VARIANT_FALSE, OLE DB Driver per SQL Server 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 driver OLE DB per SQL Server 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

Tipi di dati (OLE DB)