Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Идентификаторы для символьного типа данных ODBC C:
SQL_C_CHAR
SQL_C_WCHAR
В следующей таблице показаны типы данных SQL ODBC, в которые могут быть преобразованы символьные данные C. Описание столбцов и терминов в таблице см. в разделе "Преобразование данных из C в типы данных SQL".
Заметка
При преобразовании символьных данных C в данные Юникода SQL длина данных Юникода должна быть четной.
| Идентификатор типа SQL | Тест | SQLSTATE |
|---|---|---|
| SQL_CHAR SQL_VARCHAR SQL_LONGVARCHAR |
Длина байтов данных <= длина столбца. Длина байтов длины столбца данных > . |
Недоступно 22001 |
| SQL_WCHAR SQL_WVARCHAR SQL_WLONGVARCHAR |
Длина символов данных <= длина столбца. Длина символа длины столбца данных > . |
Недоступно 22001 |
| SQL_DECIMAL SQL_NUMERIC SQL_TINYINT SQL_SMALLINT SQL_INTEGER SQL_BIGINT |
Данные преобразуются без усечения Данные, преобразованные с усечением дробных цифр[e] Преобразование данных приведет к потере целого (в отличие от дробных) цифр[e] Значение данных не является числовым литералом |
Недоступно 22001 22001 22018 |
| SQL_REAL SQL_FLOAT SQL_DOUBLE |
Данные находится в диапазоне типа данных, в который преобразуется число. Данные находятся вне диапазона типа данных, в который преобразуется число. Значение данных не является числовым литералом |
Недоступно 22003 22018 |
| SQL_BIT | Данные : 0 или 1 Данные больше 0, менее 2 и не равны 1 Данные меньше 0 или больше или равно 2 Данные не являются числовым литералом |
Недоступно 22001 22003 22018 |
| SQL_BINARY SQL_VARBINARY SQL_LONGVARBINARY |
(Длина байтов данных) / 2 <= длина байтов столбца (Длина байтов данных) / 2 > длины байтов столбца Значение данных не является шестнадцатеричным значением |
Недоступно 22001 22018 |
| SQL_TYPE_DATE | Значение данных — допустимый литерал ODBC-date-литерал Значение данных является допустимым литералом метки времени ODBC; часть времени равна нулю. Значение данных является допустимым литералом метки времени ODBC; часть времени ненулевой[a] Значение данных не является допустимым литералом ODBC-date-литерал или ODBC-timestamp-литералом |
Недоступно Недоступно 22008 22018 |
| SQL_TYPE_TIME | Значение данных — допустимый литерал ODBC-time-литерал Значение данных является допустимым атрибутом ODBC-timestamp-литералом; часть дробных секунд равна нулю[b] Значение данных является допустимым значением ODBC-timestamp-литералов; часть дробных секунд ненулевой[b] Значение данных не является допустимым литералом ODBC-time-литерал или ODBC-timestamp-литералом |
Недоступно Недоступно 22008 22018 |
| SQL_TYPE_TIMESTAMP | Значение данных является допустимым значением odBC-timestamp-литералом; часть дробных секунд не усечена Значение данных — допустимый объект ODBC-timestamp-литерал; часть дробных секунд усечена Значение данных — допустимый odBC-date-литерал[c] Значение данных является допустимым литералом ODBC-time-literal[d] Значение данных не является допустимым литералом ODBC-date-, ODBC-time-литерал или ODBC-timestamp-литералом |
Недоступно 22008 Недоступно Недоступно 22018 |
| Все типы интервалов SQL | Значение данных является допустимым значением интервала; усечение не происходит Значение данных — допустимое значение интервала; значение в одном из полей усечено Значение данных не является допустимым литералом интервала |
Недоступно 22015 22018 |
[a] Часть времени метки времени усечена.
[b] Часть метки времени игнорируется.
[c] Часть времени метки времени имеет значение нулю.
[d] Для части метки времени задана текущая дата.
[e] Драйвер или источник данных фактически ожидает получения всей строки (даже если символьные данные отправляются в фрагментах вызовами SQLPutData), прежде чем пытаться выполнить преобразование.
При преобразовании символьных данных C в числовые, дата, время или метку времени SQL, начальные и конечные пробелы игнорируются.
При преобразовании символьных данных C в двоичные данные SQL каждые два байта символьных данных преобразуются в один байт (8 бит) двоичных данных. Каждый два байта символьных данных представляют число в шестнадцатеричной форме. Например, "01" преобразуется в двоичный 00000001 и "FF" преобразуется в двоичный 11111111.
Драйвер всегда преобразует пары шестнадцатеричных цифр в отдельные байты и игнорирует байт завершения null. Из-за этого, если длина строки символа нечетна, последний байт строки (за исключением байта завершения null, если таковой имеется), не преобразуется.
Заметка
Разработчикам приложений не рекомендуется привязывать символьные данные C к двоичному типу данных SQL. Это преобразование обычно неэффективно и медленно.