Размер столбца, десятичные цифры, длина октета и размер дисплея — ODBC

Типы данных характеризуются их размером столбца (или параметром), десятичными цифрами, длиной и размером отображения. Следующие функции ODBC возвращают эти атрибуты для параметра в инструкции SQL или для типа данных SQL в источнике данных. Каждая функция ODBC возвращает другой набор этих атрибутов, как показано ниже.

  • SQLDescribeCol возвращает размер столбца и десятичные цифры столбцов, которые он описывает.

  • SQLDescribeParam возвращает размер параметра и десятичные цифры описываемых параметров. SQLBindParameter задает размер параметра и десятичные цифры для параметра в инструкции SQL.

  • В каталоге функции SQLColumns, SQLProcedureColumns и SQLGetTypeInfo возвращаются атрибуты для столбца в таблице, результирующий набор или параметр процедуры и атрибуты каталога типов данных в источнике данных. SQLColumns возвращает размер столбца, десятичные цифры и длину столбца в указанных таблицах (например, базовую таблицу, представление или системную таблицу). SQLProcedureColumns возвращает размер столбца, десятичные цифры и длину столбца в процедуре. SQLGetTypeInfo возвращает максимальный размер столбца и минимальные и максимальные десятичные цифры типа данных SQL в источнике данных.

Значения, возвращаемые этими функциями для столбца или размера параметра, соответствуют точности, как определено в ODBC 2.x. Однако значения не обязательно соответствуют значениям, возвращаемым в SQL_DESC_PRECISION или другом поле дескриптора. То же самое верно для десятичных цифр, которые соответствуют "масштабу", как определено в ODBC 2.x. Он не обязательно соответствует значениям, возвращаемым в SQL_DESC_SCALE или любом другом поле дескриптора, но происходит из разных полей дескриптора в зависимости от типа данных. Дополнительные сведения см. в разделе "Размер столбца" и "Десятичные цифры".

Аналогичным образом значения для длины октета передачи не приходят из SQL_DESC_LENGTH. Они приходят из SQL_DESC_OCTET_LENGTH поля дескриптора для всех символов и двоичных типов. Нет поля дескриптора, в котором хранятся эти сведения для других типов.

Значение размера отображения для всех типов данных соответствует значению в одном поле дескриптора, SQL_DESC_DISPLAY_SIZE.

Поля дескриптора описывают характеристики результирующих наборов. Поля дескриптора не содержат допустимых значений о данных перед выполнением инструкции. Значения для размера столбца, десятичных цифр и размера отображения, возвращаемого SQLColumns, SQLProcedureColumns и SQLGetTypeInfo, с другой стороны, возвращают характеристики объектов базы данных, таких как столбцы таблиц и типы данных, которые существуют в каталоге источника данных. Аналогичным образом в результирующем наборе SQLColAttribute возвращает размер столбца, десятичные цифры и длину октетов столбцов в источнике данных; эти значения не обязательно совпадают со значениями в полях дескриптора SQL_DESC_PRECISION, SQL_DESC_SCALE и SQL_DESC_OCTET_LENGTH дескриптора.

Дополнительные сведения об этих полях дескриптора см. в разделе SQLSetDescField.

См. также: