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.