Asignación de tipos de datos en ITableDefinition

Cuando se crean tablas utilizando la función ITableDefinition::CreateTable , el consumidor del proveedor OLE DB de SQL Server Native Client puede especificar tipos de datos SQL Server en el miembro pwszTypeName de la matriz DBCOLUMNDESC que se pasa. Si el consumidor especifica el tipo de datos de una columna por nombre, se omite la asignación del tipo de datos de OLE DB, representada por el miembro wType de la estructura DBCOLUMNDESC.

Cuando se especifican nuevos tipos de datos de columna con tipos de datos de OLE DB utilizando el miembro wType de la estructura DBCOLUMNDESC, el proveedor OLE DB de SQL Server Native Client asigna los tipos de datos de OLE DB tal y como se indica a continuación.

Tipo de datos de OLE DB

SQL Server

tipo de datos

Información adicional

DBTYPE_BOOL

bit

DBTYPE_BYTES

binary, varbinary, image o varbinary(max)

El proveedor OLE DB de SQL Server Native Client inspecciona el miembro ulColumnSize de la estructura DBCOLUMNDESC. Basándose en el valor y la versión de la instancia de SQL Server, el proveedor OLE DB de SQL Server Native Client asigna el tipo a image.

Si el valor de ulColumnSize es menor que la longitud máxima de una columna de tipo de datos binary, el proveedor OLE DB de SQL Server Native Client inspecciona el miembro rgPropertySets de DBCOLUMNDESC. Si DBPROP_COL_FIXEDLENGTH es VARIANT_TRUE, el proveedor OLE DB de SQL Server Native Client asigna el tipo a binary. Si el valor de la propiedad es VARIANT_FALSE, el proveedor OLE DB de SQL Server Native Client asigna el tipo a varbinary. En cualquier caso, el miembro ulColumnSize de DBCOLUMNDESC determina el ancho de la columna SQL Server creada.

DBTYPE_CY

money

DBTYPE_DBTIMESTAMP

datetime

DBTYPE_GUID

uniqueidentifier

DBTYPE_I2

smallint

DBTYPE_I4

int

DBTYPE_NUMERIC

numeric

El proveedor OLE DB de SQL Server Native Client inspecciona los miembros bPrecision y bScale de DBCOLUMDESC para determinar la precisión y la escala de la columna numeric.

DBTYPE_R4

real

DBTYPE_R8

float

DBTYPE_STR

char, varchar, text o varchar(max)

El proveedor OLE DB de SQL Server Native Client inspecciona el miembro ulColumnSize de la estructura DBCOLUMNDESC. Basándose en el valor y la versión de la instancia de SQL Server, el proveedor OLE DB de SQL Server Native Client asigna el tipo a text.

Si el valor de ulColumnSize es menor que la longitud máxima de una columna de tipo de datos de caracteres multibyte, el proveedor OLE DB de SQL Server Native Client inspecciona el miembro rgPropertySets de DBCOLUMNDESC. Si DBPROP_COL_FIXEDLENGTH es VARIANT_TRUE, el proveedor OLE DB de SQL Server Native Client asigna el tipo a char. Si el valor de la propiedad es VARIANT_FALSE, el proveedor OLE DB de SQL Server Native Client asigna el tipo a varchar. En cualquier caso, el miembro ulColumnSize de DBCOLUMNDESC determina el ancho de la columna SQL Server creada.

DBTYPE_UDT

UDT

Cuando se requieren columnas UDT, ITableDefinition::CreateTable utiliza la información que se muestra a continuación en estructuras DBCOLUMNDESC:

  • pwSzTypeName se omite.

  • rgPropertySets debe incluir una propiedad DBPROPSET_SQLSERVERCOLUMN establecida tal y como se describía en la sección sobre DBPROPSET_SQLSERVERCOLUMN, en Usar tipos definidos por el usuario.

DBTYPE_UI1

tinyint

DBTYPE_WSTR

nchar, nvarchar, ntext o nvarchar(max)

El proveedor OLE DB de SQL Server Native Client inspecciona el miembro ulColumnSize de la estructura DBCOLUMNDESC. Basándose en el valor, el proveedor OLE DB de SQL Server Native Client asigna el tipo a ntext.

Si el valor de ulColumnSize es menor que la longitud máxima de una columna de tipo de datos de caracteres Unicode, el proveedor OLE DB de SQL Server Native Client inspecciona el miembro rgPropertySets de DBCOLUMNDESC. Si DBPROP_COL_FIXEDLENGTH es VARIANT_TRUE, el proveedor OLE DB de SQL Server Native Client asigna el tipo a nchar. Si el valor de la propiedad es VARIANT_FALSE, el proveedor OLE DB de SQL Server Native Client asigna el tipo a nvarchar. En cualquier caso, el miembro ulColumnSize de DBCOLUMNDESC determina el ancho de la columna SQL Server creada.

DBTYPE_XML

XML

[!NOTA]

Cuando se crea una nueva tabla, el proveedor OLE DB de SQL Server Native Client solamente asigna los valores de enumeración del tipo de datos de OLE DB especificado en la tabla anterior. Al intentar crear una tabla con una columna de cualquier otro tipo de datos de OLE DB, se genera un error.

Vea también

Conceptos

Tipos de datos (OLE DB)