Размер столбца

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

Идентификатор типа SQL Размер столбца
Все типы символов[a],[b] Определенный или максимальный размер столбца в символах столбца или параметра (как указано в поле дескриптора SQL_DESC_LENGTH). Например, размер столбца однобайтового столбца, определенного как CHAR(10), равен 10.
SQL_DECIMAL SQL_NUMERIC Определенное число цифр. Например, точность столбца, определенного как NUMERIC(10,3), равна 10.
SQL_BIT[c] 1
SQL_TINYINT[c] 3
SQL_SMALLINT[c] 5
SQL_INTEGER[c] 10
SQL_BIGINT[c] 19 (если подписан) или 20 (при отмене знака)
SQL_REAL[c] 7
SQL_FLOAT[c] 15
SQL_DOUBLE[c] 15
Все двоичные типы[a],[b] Определенная или максимальная длина в байтах столбца или параметра. Например, длина столбца, определенного как BINARY(10), равна 10.
SQL_TYPE_DATE[c] 10 (число символов в формате гггг-мм-дд ).
SQL_TYPE_TIME[c] 8 (число символов в формате hh-mm-ss) или 9 +s (число символов в формате hh:mm:ss[.fff...], где точность секунд).
SQL_TYPE_TIMESTAMP 16 (количество символов в формате гггг-мм-дд чч:мм )

19 (число символов в формате гггг-мм-ддчч:мм:сс )

or

20 + s (число символов в формате гггг-мм-дд чч:мм:сс[.fff...], где с точностью секунд).
SQL_INTERVAL_SECOND Где p является интервалом начальной точности и s является точность секунд, p (если s=0) или p++1 (если s>0).[ d]
SQL_INTERVAL_DAY_TO_SECOND Где p является интервалом начальной точности и s — точность секунд, 9+p (если s=0) или 10+p+(если s>0).[ d]
SQL_INTERVAL_HOUR_TO_SECOND Где p является интервалом начальной точности и s — точность секунд, 6+p (если s=0) или 7+p+(если s>0).[ d]
SQL_INTERVAL_MINUTE_TO_SECOND Где p является интервалом начальной точности и s — точность секунд, 3+p (если s=0) или 4+p+(если s>0).[ d]
SQL_INTERVAL_YEAR SQL_INTERVAL_MONTH SQL_INTERVAL_DAY SQL_INTERVAL_HOUR SQL_INTERVAL_MINUTE p, где p является интервалом начальной точности.[ d]
SQL_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL_DAY_TO_HOUR 3+p, где p — это интервал начальной точности.[ d]
SQL_INTERVAL_DAY_TO_MINUTE 6+p, где p — это интервал начальной точности.[ d]
SQL_INTERVAL_HOUR_TO_MINUTE 3+p, где p — это интервал начальной точности.[ d]
SQL_GUID 36 (число символов в формате aaaa-bbbb-cccc-ddd-eeee)

[a] Для приложения ODBC 1.0, вызывающего SQLSetParam в драйвере ODBC 2.0, а для приложения ODBC 2.0, вызывающего SQLBindParameter в драйвере ODBC 1.0, если *StrLen_or_IndPtr SQL_DATA_AT_EXEC для типа SQL_LONGVARCHAR или SQL_LONGVARBINARY типа, ColumnSize необходимо задать общую длину отправленных данных, не точность, как определено в этой таблице.

[b] Если драйвер не может определить длину столбца или параметра для типа переменной, он возвращает SQL_NO_TOTAL.

[c] Аргумент ColumnSize SQLBindParameter игнорируется для этого типа данных.

[d] Общие правила о длине столбца в типах данных интервала см . в разделе "Длина типа данных интервала" ранее в этом приложении.

Значения, возвращаемые для размера столбца (или параметра), не соответствуют значениям в одном поле дескриптора. Значения могут поступать из поля SQL_DESC_PRECISION или поля SQL_DESC_LENGTH в зависимости от типа данных, как показано в следующей таблице.

Тип SQL Поле дескриптора, соответствующее

Размер столбца или параметра
Все типы символов и двоичных типов LENGTH
Все числовые типы PRECISION
Все типы даты и интервала LENGTH
SQL_BIT LENGTH