Esempi di conversione di dati da C a SQL

Gli esempi seguenti illustrano come il driver converte i dati C in dati SQL:

Identificatore del tipo C Valore dati C Tipo SQL

identificatore
Column

length
SQL data

valore
SQLSTATE
SQL_C_CHAR abcdef\0[a] SQL_CHAR 6 abcdef N/D
SQL_C_CHAR abcdef\0[a] SQL_CHAR 5 Abcde 22001
SQL_C_CHAR 1234.56\0[a] SQL_DECIMAL 8[b] 1234.56 N/D
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 N/D 1234.56 N/D
SQL_C_FLOAT 1234.56 SQL_INTEGER N/D 1234 22001
SQL_C_FLOAT 1234.56 SQL_TINYINT N/D ---- 22003
SQL_C_TYPE_DATE 1992,12,31[c] SQL_CHAR 10 1992-12-31 N/D
SQL_C_TYPE_DATE 1992,12,31[c] SQL_CHAR 9 ---- 22003
SQL_C_TYPE_DATE 1992,12,31[c] SQL_TIMESTAMP N/D 1992-12-31 00:00:00.0 N/D
SQL_C_TYPE_TIMESTAMP 1992,12,31, 23,45,55, 1200000000[d] SQL_CHAR 22 1992-12-31 23:45:55.12 N/D
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" rappresenta un byte di terminazione Null. Il byte di terminazione Null è obbligatorio solo se la lunghezza dei dati è SQL_NTS.

[b] Oltre ai byte per i numeri, è necessario un byte per un segno e un altro byte è necessario per il separatore decimale.

[c] I numeri in questo elenco sono i numeri archiviati nei campi della struttura SQL_DATE_STRUCT.

[d] I numeri in questo elenco sono i numeri archiviati nei campi della struttura SQL_TIMESTAMP_STRUCT.