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


Примеры преобразования данных из 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.