Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Каждая СУБД определяет собственные типы SQL. Каждый драйвер ODBC предоставляет только те типы данных SQL, которые определяют связанные СУБД. Сведения о том, как драйвер сопоставляет типы СУБД SQL с идентификаторами типов SQL, определяемыми ODBC, и как драйвер сопоставляет типы СУБД SQL с собственными идентификаторами типов SQL для конкретного драйвера, возвращается через вызов SQLGetTypeInfo. Драйвер также возвращает типы данных SQL при описании типов данных столбцов и параметров с помощью вызовов SQLColAttribute, SQLColumns, SQLDescribeCol, SQLDescribeParam, SQLProcedureColumns и SQLSpecialColumns.
Примечание.
Типы данных SQL содержатся в полях дескрипторов реализации SQL_DESC_CONCISE_TYPE, SQL_DESC_TYPE и SQL_DESC_DATETIME_INTERVAL_CODE. Характеристики типов данных SQL содержатся в полях SQL_DESC_PRECISION, SQL_DESC_SCALE, SQL_DESC_LENGTH и SQL_DESC_OCTET_LENGTH дескрипторов реализации. Дополнительные сведения см . в разделе "Идентификаторы типов данных" и "Дескрипторы " далее в этом приложении.
Указанный драйвер и источник данных не обязательно поддерживают все типы данных SQL, определенные в этом приложении. Поддержка драйвера для типов данных SQL зависит от уровня SQL-92, с которым соответствует драйвер. Чтобы определить уровень грамматики SQL-92, поддерживаемой драйвером, приложение вызывает SQLGetInfo с типом сведений SQL_SQL_CONFORMANCE. Кроме того, указанный драйвер и источник данных могут поддерживать дополнительные типы данных SQL для конкретного драйвера. Чтобы определить, какие типы данных поддерживает драйвер, приложение вызывает SQLGetTypeInfo. Сведения о типах данных SQL для конкретного драйвера см. в документации по драйверу. Сведения о типах данных в определенном источнике данных см. в документации по источнику данных.
Внимание
Таблицы в этом приложении являются только рекомендациями и отображают обычно используемые имена, диапазоны и ограничения типов данных SQL. Указанный источник данных может поддерживать только некоторые из перечисленных типов данных, а характеристики поддерживаемых типов данных могут отличаться от перечисленных.
В следующей таблице перечислены допустимые идентификаторы типов SQL для всех типов данных SQL. В таблице также перечислены имя и описание соответствующего типа данных из SQL-92 (если он существует).
| Идентификатор типа SQL[1] | Типичные данные SQL type[2] |
Типичное описание типа |
|---|---|---|
| SQL_CHAR | CHAR(n) | Символьная строка фиксированной длины строки n. |
| SQL_VARCHAR | VARCHAR(n) | Строка символа переменной длины с максимальной длиной строки n. |
| SQL_LONGVARCHAR | LONG VARCHAR | Данные символов переменной длины. Максимальная длина зависит от источника данных. [9] |
| SQL_WCHAR | WCHAR(n) | Символьная строка Юникода фиксированной длины строки n |
| SQL_WVARCHAR | VARWCHAR(n) | Строка символа переменной длины Юникода с максимальной длиной строки n |
| SQL_WLONGVARCHAR | LONGWVARCHAR | Символьные данные переменной длины Юникода. Максимальная длина зависит от источника данных |
| SQL_DECIMAL | DECIMAL(p,s) | Подписанное, точное числовое значение с точностью по крайней мере p и scale s. (Максимальная точность определяется драйвером.) (1 <= p<= 15; s<= p).[ 4] |
| SQL_NUMERIC | NUMERIC(p,s) | Подписанный, точный, числовое значение с точностью p и масштабируемым s (1 <= p<= 15; s<= p).[ 4] |
| SQL_SMALLINT | SMALLINT | Точное числовое значение с точностью 5 и масштабом 0 (подписанный: -32 768 <= n<= 32 767, без знака: 0 <= n<= 65 535)[3]. |
| SQL_INTEGER | INTEGER | Точное числовое значение с точностью 10 и масштабом 0 (подписанный: -2[31] <= n<= 2[31] - 1, без знака: 0 <= n<= 2[32] - 1)[3]. |
| SQL_REAL | real | Подписанный, приблизительное числовое значение с двоичной точностью 24 (нулевое или абсолютное значение 10[-38] до 10[38]). |
| SQL_FLOAT | FLOAT(p) | Подписанный, приблизительный, числовое значение с двоичной точностью по крайней мере p. (Максимальная точность определяется драйвером.)[5] |
| SQL_DOUBLE | DOUBLE PRECISION | Подписанный, приблизительное числовое значение с двоичной точностью 53 (нулевое или абсолютное значение 10[-308] до 10[308]). |
| SQL_BIT | BIT | Однобитовые двоичные данные. [8] |
| SQL_TINYINT | TINYINT | Точное числовое значение с точностью 3 и масштабом 0 (подписанный: -128 <= n<= 127, без знака: 0 <= n<= 255)[3]. |
| SQL_BIGINT | BIGINT | Точное числовое значение с точностью 19 (если подпись) или 20 (если не указано) и масштаб 0 (подписанный: -2[63] <= n<= 2[63] - 1, без знака: 0 <= n<= 2[64] - 1)[3],[9]. |
| SQL_BINARY | BINARY(n) | Двоичные данные фиксированной длины n.[ 9] |
| SQL_VARBINARY | VARBINARY(n) | Двоичные данные переменной длины n. Максимальное значение задается пользователем. [9] |
| SQL_LONGVARBINARY | LONG VARBINARY | Двоичные данные переменной длины. Максимальная длина зависит от источника данных. [9] |
| SQL_TYPE_DATE[6] | DATE | Поля года, месяца и дня, соответствующие правилам григорианского календаря. (См. раздел Ограничения григорианского календаря далее в этом приложении.) |
| SQL_TYPE_TIME[6] | TIME(p) | Часы, минуты и второй поля с допустимыми значениями в часах от 00 до 23, допустимые значения в минутах от 00 до 59 и допустимые значения в секундах от 00 до 61. Точность p указывает точность секунд. |
| SQL_TYPE_TIMESTAMP[6] | TIMESTAMP(p) | Год, месяц, день, час, минута и второе поля с допустимыми значениями, определенными для типов данных DATE и TIME. |
| SQL_TYPE_UTCDATETIME | UTCDATETIME | Год, месяц, день, час, минута, вторая, utchour и поля utcminute. Поля utchour и utcminute имеют точность 1/10 микросекунд. |
| SQL_TYPE_UTCTIME | UTCTIME | Час, минута, секунда, utchour и поля utcminute. Поля utchour и utcminute имеют точность 1/10 микросекунд.. |
| SQL_INTERVAL_MONTH[7] | INTERVAL MONTH(p) | Количество месяцев между двумя датами; p — это начальная точность интервала. |
| SQL_INTERVAL_YEAR[7] | INTERVAL YEAR(p) | Количество лет между двумя датами; p — это начальная точность интервала. |
| SQL_INTERVAL_YEAR_TO_MONTH[7] | ИНТЕРВАЛ ГОДА(p) ДО МЕСЯЦА | Количество лет и месяцев между двумя датами; p — это начальная точность интервала. |
| SQL_INTERVAL_DAY[7] | INTERVAL DAY(p) | Количество дней между двумя датами; p — это начальная точность интервала. |
| SQL_INTERVAL_HOUR[7] | INTERVAL HOUR(p) | Количество часов между двумя датами и временем; p — это начальная точность интервала. |
| SQL_INTERVAL_MINUTE[7] | INTERVAL MINUTE(p) | Количество минут между двумя датами и временем; p — это начальная точность интервала. |
| SQL_INTERVAL_SECOND[7] | INTERVAL SECOND(p,q) | Количество секунд между двумя датами и временем; p — это начальная точность интервала, а q — это точность интервала в секундах. |
| SQL_INTERVAL_DAY_TO_HOUR[7] | ИНТЕРВАЛ ДНЯ(p) ДО ЧАСА | Количество дней и часов между двумя датами и временем; p — это начальная точность интервала. |
| SQL_INTERVAL_DAY_TO_MINUTE[7] | ИНТЕРВАЛ ДНЯ(p) ДО МИНУТЫ | Количество дней/часов/минут между двумя датами и временем; p — это начальная точность интервала. |
| SQL_INTERVAL_DAY_TO_SECOND[7] | INTERVAL DAY(p) TO SECOND(q) | Количество дней/часов/минут/секунд между двумя датами и временем; p — это начальная точность интервала, а q — это точность интервала в секундах. |
| SQL_INTERVAL_HOUR_TO_MINUTE[7] | INTERVAL HOUR(p) TO MINUTE | Количество часов и минут между двумя датами и временем; p — это начальная точность интервала. |
| SQL_INTERVAL_HOUR_TO_SECOND[7] | INTERVAL HOUR(p) TO SECOND(q) | Количество часов/минут/секунд между двумя датами и временем; p — это начальная точность интервала, а q — это точность интервала в секундах. |
| SQL_INTERVAL_MINUTE_TO_SECOND[7] | INTERVAL MINUTE(p) TO SECOND(q) | Количество минут/секунд между двумя датами и временем; p — это начальная точность интервала, а q — это точность интервала в секундах. |
| SQL_GUID | GUID | Guid фиксированной длины. |
[1] Это значение, возвращаемое в столбце DATA_TYPE вызовом SQLGetTypeInfo.
[2] Это значение, возвращаемое в столбце NAME и CREATE PARAMS путем вызова SQLGetTypeInfo. Столбец NAME возвращает обозначение, например CHAR, тогда как столбец CREATE PARAMS возвращает разделенный запятыми список параметров создания, таких как точность, масштабирование и длина.
[3] Приложение использует SQLGetTypeInfo или SQLColAttribute , чтобы определить, является ли определенный тип данных или определенный столбец в результирующем наборе неназначен.
[4] SQL_DECIMAL и SQL_NUMERIC типы данных отличаются только в их точности. Точность ДЕСЯТИЧНЫХ(p,s) — это определяемая реализацией десятичная точность, которая не меньше p, в то время как точность числовых чисел (p,) точно равна p.
[5] В зависимости от реализации точность SQL_FLOAT может быть либо 24, либо 53: если она равна 24, тип данных SQL_FLOAT совпадает с SQL_REAL; Если значение равно 53, тип данных SQL_FLOAT совпадает с SQL_DOUBLE.
[6] В ODBC 3.x типы данных даты, времени и метки времени SQL SQL_TYPE_DATE, SQL_TYPE_TIME и SQL_TYPE_TIMESTAMP соответственно; в ODBC 2.x типы данных SQL_DATE, SQL_TIME и SQL_TIMESTAMP.
[7] Дополнительные сведения о типах данных SQL интервала см . в разделе "Типы данных интервала" далее в этом приложении.
[8] Тип данных SQL_BIT отличается от типа BIT в SQL-92.
[9] Этот тип данных не имеет соответствующего типа данных в SQL-92.
В этом разделе приведен следующий пример.