Примеры преобразования данных из C в SQL
В следующих примерах показано, как драйвер преобразует данные C в данные SQL:
Идентификатор типа C | Значение данных C | Тип SQL идентификатор |
Column length |
Данные SQL значение |
SQLSTATE |
---|---|---|---|---|---|
SQL_C_CHAR | abcdef\0[a] | SQL_CHAR | 6 | abcdef | Недоступно |
SQL_C_CHAR | abcdef\0[a] | SQL_CHAR | 5 | Abcde | 22001 |
SQL_C_CHAR | 1234.56\0[a] | SQL_DECIMAL | 8[b] | 1234.56 | Недоступно |
SQL_C_CHAR | 1234.56\0[a] | SQL_DECIMAL | 7[b] | 1234.5 | 22001 |
SQL_C_CHAR | 1234.56\0[a] | SQL_DECIMAL | 4 | ---- | 22003 |
SQL_C_FLOAT | 1234.56 | SQL_FLOAT | Недоступно | 1234.56 | Недоступно |
SQL_C_FLOAT | 1234.56 | SQL_INTEGER | Недоступно | 1 234 | 22001 |
SQL_C_FLOAT | 1234.56 | SQL_TINYINT | Недоступно | ---- | 22003 |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_CHAR | 10 | 1992-12-31 | Недоступно |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_CHAR | 9 | ---- | 22003 |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_TIMESTAMP | Недоступно | 1992-12-31 00:00:00.0 | Недоступно |
SQL_C_TYPE_TIMESTAMP | 1992 12 31, 23 45 55, 1200000000[d] | SQL_CHAR | 22 | 1992-12-31 23:45:55.12 | Недоступно |
SQL_C_TYPE_TIMESTAMP | 1992 12 31, 23 45 55, 1200000000[d] | SQL_CHAR | 21 | 1992-12-31 23:45:55.1 | 22001 |
SQL_C_TYPE_TIMESTAMP | 1992 12 31, 23 45 55, 1200000000[d] | SQL_CHAR | 18 | ---- | 22003 |
[a] "\0" представляет байт завершения null. Байт завершения null требуется только в том случае, если длина данных SQL_NTS.
[b] Помимо байтов для чисел, для знака требуется один байт, а для десятичной запятой требуется еще один байт.
[c] Числа в этом списке — это числа, хранящиеся в полях структуры SQL_DATE_STRUCT.
[d] Числа в этом списке — это числа, хранящиеся в полях структуры SQL_TIMESTAMP_STRUCT.