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


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

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

При использовании члена wType структуры DBCOLUMNDESC для указания новых типов данных столбца с использованием типов данных OLE DB поставщик 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. Если значение DBPROP_COL_FIXEDLENGTH равно VARIANT_FALSE, поставщик 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 приводит к ошибке.

См. также

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

Типы данных (OLE DB)