Использование типов данных
В драйвере ODBC для собственного клиента SQL Server и в SQL Server типы данных используются следующим образом.
Тип данных |
Ограничение |
|---|---|
Литералы даты |
Литералы даты при помещении в столбец SQL_TYPE_TIMESTAMP (типы данных SQL Server datetime или smalldatetime) имеют значение времени 12:00:00.000. |
money и smallmoney |
Имеют значение только целочисленные части типов данных money и smallmoney. Если десятичная часть данных SQL money усекается в процессе преобразования данных, то драйвер для собственного клиента ODBC SQL Server возвращает предупреждение, а не ошибку. |
SQL_BINARY (допускающий значения NULL) |
Если столбец SQL_BINARY допускает значения NULL, при подключении к экземпляру SQL Server версии 6.0 или более ранней данные, помещенные в источник данных, не заполняются нулями. При получении данных таких, как столбец, драйвер ODBC для собственного клиента SQL Server заполняет их нулями справа. Однако данные, которые создаются в операциях, выполняемых SQL Server (например, объединении), не имеют такого заполнения. Также, при помещении данных в такие столбцы в экземпляре SQL Server 6.0 или более ранней, SQL Server усекает данные справа, если их длина слишком большая, чтобы поместиться в столбец. Примечание
Драйвер ODBC собственного клиента SQL Server поддерживает соединение с версией SQL Server 6.5 и ранее.
|
SQL_CHAR (усечение) |
При подключении к экземпляру SQL Server 6,0 или более ранней версии, данные помещаются в столбец SQL_CHAR, SQL Server усекает их справа, не выдавая предупреждения, если их длина слишком большая, чтобы поместиться в столбец. Примечание
Драйвер ODBC собственного клиента SQL Server поддерживает соединение с версией SQL Server 6.5 и ранее.
|
SQL_CHAR (допускающий значения NULL) |
Если столбец SQL_CHAR допускает значения NULL, при подключении к экземпляру SQL Server версии 6.0 или более ранней данные, помещенные в источник данных, не заполняются пустыми полями. При получении данных таких, как столбец, драйвер ODBC для собственного клиента SQL Server заполняет их пустыми полями справа. Однако данные, которые создаются в операциях, выполняемых SQL Server (например, объединении), не имеют такого заполнения. Примечание
Драйвер ODBC собственного клиента SQL Server поддерживает соединение с версией SQL Server 6.5 и ранее.
|
SQL_LONGVARBINARY, SQL_LONGVARCHAR, SQL_WLONGVARCHAR |
Обновление столбцов с типами данных SQL_LONGVARBINARY, SQL_LONGVARCHAR или SQL_WLONGVARCHAR (с использованием предложения WHERE) могут повлиять на полностью поддерживаемые множественные строки при подключении к экземпляру SQL Server 6.x или более поздней версии. При подключении к экземпляру SQL Server 4.2x возвращается ошибка "Частичная вставка/обновление. Вставка/обновление столбца(ов) text или image не завершено", если обновление затрагивает более одной строки. Примечание
Драйвер ODBC собственного клиента SQL Server поддерживает соединение с версией SQL Server 6.5 и ранее.
|
Параметры строковых функций |
Параметры string_exp строковых функций должны быть данными типа SQL_CHAR или SQL_VARCHAR. Типы данных SQL_LONG_VARCHAR не допускаются в строковых функциях. Параметр count должен быть меньше или равен 8000, так как типы данных SQL_CHAR и SQL_VARCHAR ограничены максимальной длиной в 8000 символов. |
Литералы времени |
Литералы времени при помещении в столбец SQL_TIMESTAMP (типы данных SQL Server datetime или smalldatetime) имеют значение времени "1 января 1900". |
timestamp |
Вручную в столбец timestamp может быть вставлено только значение NULL. Однако, так как столбцы timestamp автоматически обновляются SQL Server, то значение NULL перезаписывается. |
tinyint |
Тип данных SQL Server tinyint является беззнаковым. Столбец tinyint по умолчанию привязывается к переменной типа данных SQL_C_UTINYINT. |
Псевдонимы типов данных |
При подключении к экземпляру SQL Server 4.2x драйвер ODBC добавляет значение NULL в определение столбца, в котором явно не указана допустимость значений NULL. Поэтому допустимость значений NULL, помещенная в определение псевдонима типа данных, не учитывается. При подключении к экземпляру SQL Server 4.2x столбцы с псевдонимом типа данных, который имеет базовый тип данных char или binary и для которого не объявлена допустимость значений NULL, создаются с типом данных varchar или varbinary. Методы SQLColAttribute, SQLColumns и SQLDescribeCol возвращают SQL_VARCHAR и SQL_VARBINARY в качестве типа данных для этих столбцов. Данные, полученные из этих столбцов, не заполнены. Примечание
Драйвер ODBC собственного клиента SQL Server поддерживает соединение с версией SQL Server 6.5 и ранее.
|
Типы данных LONG |
Параметры data-at-execution ограничены для обоих типов данных SQL_LONGVARBINARY и SQL_LONGVARCHAR. |
Типы больших значений |
Драйвер ODBC для собственного клиента SQL Server предоставит типы varchar(max), varbinary(max) и nvarchar(max) в виде SQL_VARCHAR, SQL_VARBINARY и SQL_WVARCHAR (соответственно) в API-интерфейсах, которые принимают или возвращают типы данных ODBC SQL. |
Определяемый пользователем тип |
Столбцы определяемого пользователем типа преобразуются в тип данных SQL_SS_UDT. Если столбец определяемого пользователем типа явно сопоставлен с другим типом в инструкции SQL при помощи методов ToString() или ToXMLString() типа, определяемого пользователем, или через функции CAST/CONVERT, то тип столбца в результирующем наборе будет отражать реальный тип, к которому столбец был преобразован. Драйвер ODBC для собственного клиента SQL Server может только привязать к столбцу определяемого пользователем типа как к двоичному. SQL Server только поддерживает преобразование между типами данных SQL_SS_UDT и SQL_C_BINARY. |
XML |
SQL Server автоматически преобразует XML в текст на Юникоде. Тип XML преобразуется в SQL_SS_XML. |
Примечание