Поделиться через


Сопоставление типов данных в интерфейсе ITableDefinition

При создании таблиц с использованием функции ITableDefinition::CreateTable , пользователь поставщика OLE DB для собственного клиента SQL Server может указать типы данных SQL Server в переданном элементе pwszTypeName массива DBCOLUMNDESC. Если пользователь указывает тип данных столбца по имени, сопоставление типов OLE DB, представленное элементом wType структуры DBCOLUMNDESC, игнорируется.

При задании типов данных нового столбца с типами данных OLE DB с использованием элемента wType структуры DBCOLUMNDESC, поставщик OLE DB для собственного клиента SQL Server сопоставляет типы данных OLE DB следующим образом.

Тип данных OLE DB

SQL Server

тип данных

Дополнительные сведения

DBTYPE_BOOL

bit

DBTYPE_BYTES

binary, varbinary, image, или varbinary(max)

В поставщике OLE DB собственного клиента SQL Server выполняется проверка элемента ulColumnSize структуры DBCOLUMNDESC. В зависимости от значения, версии экземпляра SQL Server, поставщик OLE DB для собственного клиента SQL Server сопоставляет тип с типом image.

Если значение ulColumnSize меньше максимальной длины столбца типа данных binary, то поставщик OLE DB для собственного клиента SQL Server проверяет элемент rgPropertySets структуры DBCOLUMNDESC. If DBPROP_COL_FIXEDLENGTH is VARIANT_TRUE, the Поставщик OLE DB для собственного клиента SQL Server сопоставляет тип с типом binary. Если значение свойства — VARIANT_FALSE, поставщик OLE DB для собственного клиента SQL Server сопоставляет тип с типом varbinary. В любом случае элемент ulColumnSize структуры DBCOLUMNDESC определяет ширину создаваемого столбца SQL Server.

DBTYPE_CY

money

DBTYPE_DBTIMESTAMP

datetime

DBTYPE_GUID

uniqueidentifier

DBTYPE_I2

smallint

DBTYPE_I4

int

DBTYPE_NUMERIC

numeric

Поставщик OLE DB для собственного клиента SQL Server проверяет элементы bPrecision и bScale структуры DBCOLUMDESC , пытаясь определить точность и масштаб столбца numeric.

DBTYPE_R4

real

DBTYPE_R8

float

DBTYPE_STR

char, varchar, text, или varchar(max)

В поставщике OLE DB собственного клиента SQL Server выполняется проверка элемента ulColumnSize структуры DBCOLUMNDESC. В зависимости от значения, версии экземпляра SQL Server, поставщик OLE DB для собственного клиента SQL Server сопоставляет тип с типом text.

Если значение ulColumnSize меньше максимальной длины столбца многобайтового типа данных, то поставщик OLE DB для собственного клиента SQL Server проверяет элемент rgPropertySets структуры DBCOLUMNDESC. Если значение DBPROP_COL_FIXEDLENGTH равно VARIANT_FALSE, поставщик OLE DB для собственного клиента SQL Server сопоставляет тип с типом char. Если значение свойства — VARIANT_FALSE, поставщик OLE DB для собственного клиента SQL Server сопоставляет тип с типом varchar. В любом случае элемент ulColumnSize структуры DBCOLUMNDESC определяет ширину создаваемого столбца SQL Server.

DBTYPE_UDT

Определяемый пользователем тип

Следующие сведения используются в структурах DBCOLUMNDESC функциях ITableDefinition::CreateTable, когда требуются столбцы определяемого пользователем типа:

DBTYPE_UI1

tinyint

DBTYPE_WSTR

nchar, nvarchar, ntext, или nvarchar(max)

В поставщике OLE DB собственного клиента SQL Server выполняется проверка элемента ulColumnSize структуры DBCOLUMNDESC. В зависимости от значения, поставщик OLE DB для собственного клиента SQL Server сопоставляет тип с типом ntext.

Если значение ulColumnSize меньше максимальной длины символьного столбца типа данных Юникода, то поставщик OLE DB для собственного клиента SQL Server проверяет элемент rgPropertySets структуры DBCOLUMNDESC. Если значение DBPROP_COL_FIXEDLENGTH равно VARIANT_FALSE, поставщик OLE DB для собственного клиента SQL Server сопоставляет тип с типом nchar. Если значение свойства — VARIANT_FALSE, поставщик OLE DB для собственного клиента SQL Server сопоставляет тип с типом nvarchar. В любом случае элемент ulColumnSize структуры DBCOLUMNDESC определяет ширину создаваемого столбца SQL Server.

DBTYPE_XML

XML

ПримечаниеПримечание

При создании новой таблицы поставщик OLE DB для собственного клиента SQL Server сопоставляет только значения перечисления типа данных OLE DB, указанные в предшествующей таблице. При попытке создать таблицу со столбцом любого другого типа данных OLE DB формируется ошибка.

См. также

Основные понятия