Сопоставление типов данных в интерфейсе 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 формируется ошибка. |