Бөлісу құралы:


Примеры преобразования данных из SQL в C

В примерах, показанных в следующей таблице, показано, как драйвер преобразует данные SQL в данные C:

Тип SQL

идентификатор
Данные SQL

значение
Тип C

идентификатор
Buffer

length
*TargetValuePtr SQLSTATE
SQL_CHAR abcdef SQL_C_CHAR 7 abcdef\0[a] Недоступно
SQL_CHAR abcdef SQL_C_CHAR 6 abcde\0[a] 01004
SQL_DECIMAL 1234.56 SQL_C_CHAR 8 1234.56\0[a] Недоступно
SQL_DECIMAL 1234.56 SQL_C_CHAR 5 1234\0[a] 01004
SQL_DECIMAL 1234.56 SQL_C_CHAR 4 ---- 22003
SQL_DECIMAL 1234.56 SQL_C_FLOAT не учитывается 1234.56 Недоступно
SQL_DECIMAL 1234.56 SQL_C_SSHORT не учитывается 1 234 01S07
SQL_DECIMAL 1234.56 SQL_C_STINYINT не учитывается ---- 22003
SQL_DOUBLE 1.2345678 SQL_C_DOUBLE не учитывается 1.2345678 Недоступно
SQL_DOUBLE 1.2345678 SQL_C_FLOAT не учитывается 1.234567 Недоступно
SQL_DOUBLE 1.2345678 SQL_C_STINYINT не учитывается 1 Недоступно
SQL_TYPE_DATE 1992-12-31 SQL_C_CHAR 11 1992-12-31\0[a] Недоступно
SQL_TYPE_DATE 1992-12-31 SQL_C_CHAR 10 ----- 22003
SQL_TYPE_DATE 1992-12-31 SQL_C_TIMESTAMP не учитывается 1992,12,31, 0,0,0,0,0[b] Недоступно
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 23 1992-12-31 23:45:55.12\0[a] Недоступно
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 22 1992-12-31 23:45:55.1\0[a] 01004
SQL_TYPE_TIMESTAMP 1992-12-31 23:45:55.12 SQL_C_CHAR 18 ---- 22003

[a] "\0" представляет байт завершения null. Драйвер всегда завершает значение NULL SQL_C_CHAR данных.

[b] Числа в этом списке — это числа, хранящиеся в полях структуры TIMESTAMP_STRUCT.