Длительность октета передачи
Длина октета передачи столбца — максимальное количество байтов, возвращаемых приложению при передаче данных в тип данных C по умолчанию. Для символьных данных длина октета передачи не включает пробел для символа завершения null. Длина октета передачи столбца может отличаться от количества байтов, необходимых для хранения данных в источнике данных.
Длина октета передачи, определенная для каждого типа данных ODBC SQL, показана в следующей таблице.
Идентификатор типа SQL | Длина |
---|---|
Все типы символов[a] | Определенная или максимальная длина столбца в байтах (для типа переменной). Это то же значение, что и поле дескриптора SQL_DESC_OCTET_LENGTH. |
SQL_DECIMAL SQL_NUMERIC |
Количество байтов, необходимых для хранения символьного представления этих данных, если набор символов — ANSI, и в два раза это число, если набор символов имеет значение ЮНИКОД. Это максимальное число цифр плюс два, так как данные возвращаются как символьная строка и символы необходимы для цифр, знака и десятичной запятой. Например, длина передачи столбца, определенного как NUMERIC(10,3), равна 12. |
SQL_TINYINT | 1 |
SQL_SMALLINT | 2 |
SQL_INTEGER | 4 |
SQL_BIGINT | 8 |
SQL_REAL | 4 |
SQL_FLOAT | 8 |
SQL_DOUBLE | 8 |
SQL_BIT | 1 |
Все двоичные типы[a] | Количество байтов, необходимых для хранения определенного (для фиксированных типов) или максимального (для типов переменных) количества символов. |
SQL_TYPE_DATE SQL_TYPE_TIME |
6 (размер SQL_DATE_STRUCT или SQL_TIME_STRUCT структуры). |
SQL_TYPE_TIMESTAMP | 16 (размер структуры SQL_TIMESTAMP_STRUCT). |
Все типы данных интервала | 34 (размер структуры интервала). |
SQL_GUID | 16 (размер структуры GUID). |
[a] Если драйвер не может определить длину столбца или параметра для типов переменных, он возвращает SQL_NO_TOTAL.