Partager via


Mappage de type de données dans ITableDefinition

Lors de la création de tables à l'aide de la fonction ITableDefinition::CreateTable , le consommateur de fournisseur OLE DB SQL Server Native Client peut spécifier des types de données SQL Server dans le membre pwszTypeName du tableau DBCOLUMNDESC passé. Si le consommateur spécifie le type de données d'une colonne par nom, le mappage de type de données OLE DB, représenté par le membre wType de la structure DBCOLUMNDESC, est ignoré.

Lors de la spécification de nouveaux types de données de colonne avec des types de données OLE DB à l'aide du membre de structure wType DBCOLUMNDESC, le fournisseur OLE DB SQL Server Native Client mappe les types de données OLE DB comme suit.

Type de données OLE DB

Type de données

SQL Server

Autres informations

DBTYPE_BOOL

bit

DBTYPE_BYTES

binary, varbinary, image ou varbinary(max)

Le fournisseur OLE DB SQL Server Native Client inspecte le membre ulColumnSize de la structure DBCOLUMNDESC. Selon la valeur et la version de l'instance SQL Server, le fournisseur OLE DB SQL Server Native Client mappe le type à image.

Si la valeur de ulColumnSize est inférieure à la longueur maximale d'une colonne de type de données binary, le fournisseur OLE DB Native Client SQL Server inspecte le membre rgPropertySets DBCOLUMNDESC. Si DBPROP_COL_FIXEDLENGTH est VARIANT_TRUE, le fournisseur OLE DB SQL Server Native Client mappe le type à binary. Si la valeur de la propriété est VARIANT_FALSE, le fournisseur OLE DB SQL Server Native Client mappe le type à varbinary. Dans les deux cas, le membre ulColumnSize DBCOLUMNDESC détermine la largeur de la colonne SQL Server créée.

DBTYPE_CY

money

DBTYPE_DBTIMESTAMP

datetime

DBTYPE_GUID

uniqueidentifier

DBTYPE_I2

smallint

DBTYPE_I4

int

DBTYPE_NUMERIC

numeric

Le fournisseur OLE DB SQL Server Native Client inspecte les membres bPrecision et bScale DBCOLUMDESC pour déterminer la précision et l'échelle pour la colonne numeric.

DBTYPE_R4

real

DBTYPE_R8

float

DBTYPE_STR

char, varchar, text ou varchar(max)

Le fournisseur OLE DB SQL Server Native Client inspecte le membre ulColumnSize de la structure DBCOLUMNDESC. Selon la valeur et la version de l'instance SQL Server, le fournisseur OLE DB SQL Server Native Client mappe le type à text.

Si la valeur de ulColumnSize est inférieure à la longueur maximale d'une colonne de type de données caractères multioctets, le fournisseur OLE DB Native Client SQL Server inspecte le membre rgPropertySets DBCOLUMNDESC. Si DBPROP_COL_FIXEDLENGTH est VARIANT_TRUE, le fournisseur OLE DB SQL Server Native Client mappe le type à char. Si la valeur de la propriété est VARIANT_FALSE, le fournisseur OLE DB SQL Server Native Client mappe le type à varchar. Dans les deux cas, le membre ulColumnSize DBCOLUMNDESC détermine la largeur de la colonne SQL Server créée.

DBTYPE_UDT

UDT

Les informations suivantes sont utilisées dans les structures DBCOLUMNDESC par ITableDefinition::CreateTable lorsque les colonnes UDT sont requises :

DBTYPE_UI1

tinyint

DBTYPE_WSTR

nchar, nvarchar, ntext ou nvarchar(max)

Le fournisseur OLE DB SQL Server Native Client inspecte le membre ulColumnSize de la structure DBCOLUMNDESC. Selon la valeur, le fournisseur OLE DB SQL Server Native Client mappe le type à ntext.

Si la valeur de ulColumnSize est inférieure à la longueur maximale d'une colonne de type de données caractères Unicode, le fournisseur OLE DB Native Client SQL Server inspecte le membre rgPropertySets DBCOLUMNDESC. Si DBPROP_COL_FIXEDLENGTH est VARIANT_TRUE, le fournisseur OLE DB SQL Server Native Client mappe le type à nchar. Si la valeur de la propriété est VARIANT_FALSE, le fournisseur OLE DB SQL Server Native Client mappe le type à nvarchar. Dans les deux cas, le membre ulColumnSize DBCOLUMNDESC détermine la largeur de la colonne SQL Server créée.

DBTYPE_XML

XML

[!REMARQUE]

Lors de la création d'une table, le fournisseur OLE DB SQL Server Native Client mappe uniquement les valeurs d'énumération de type de données OLE DB spécifiées dans le tableau précédent. Toute tentative de création d'une table avec une colonne de tout autre type de données OLE DB génère une erreur.

Voir aussi

Concepts