Поделиться через


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

Размер столбца (или параметра) числовых типов данных определяется как максимальное количество цифр, используемых типом данных столбца или параметра, или точностью данных. Для типов символов это длина символов в символах данных; для типов двоичных данных размер столбца определяется как длина в байтах данных. Для времени, метки времени и всех типов данных интервала это число символов в символьном представлении этих данных. Размер столбца, определенный для каждого краткого типа данных 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