Exemples de conversion de données C en SQL
Les exemples suivants illustrent comment le pilote convertit des données C en données SQL :
Identificateur de type C | Valeur de données C | Type SQL identificateur |
Colonne length |
Données SQL valeur |
SQLSTATE |
---|---|---|---|---|---|
SQL_C_CHAR | abcdef\0[a] | SQL_CHAR | 6 | abcdef | n/a |
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/a |
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/a | 1234.56 | n/a |
SQL_C_FLOAT | 1234.56 | SQL_INTEGER | n/a | 1234 | 22001 |
SQL_C_FLOAT | 1234.56 | SQL_TINYINT | n/a | ---- | 22003 |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_CHAR | 10 | 1992-12-31 | n/a |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_CHAR | 9 | ---- | 22003 |
SQL_C_TYPE_DATE | 1992,12,31[c] | SQL_TIMESTAMP | n/a | 1992-12-31 00:00:00.0 | n/a |
SQL_C_TYPE_TIMESTAMP | 1992,12,31, 23,45,55, 120000000[d] | SQL_CHAR | 22 | 1992-12-31 23:45:55.12 | n/a |
SQL_C_TYPE_TIMESTAMP | 1992,12,31, 23,45,55, 120000000[d] | SQL_CHAR | 21 | 1992-12-31 23:45:55.1 | 22001 |
SQL_C_TYPE_TIMESTAMP | 1992,12,31, 23,45,55, 120000000[d] | SQL_CHAR | 18 | ---- | 22003 |
[a] « \0 » représente un octet de terminaison Null. L’octet de terminaison Null n’est requis que si la longueur des données est SQL_NTS.
[b] En plus des octets pour les nombres, un octet est requis pour un signe et un autre octet est requis pour la virgule décimale.
[c] Les nombres de cette liste sont les nombres stockés dans les champs de la structure SQL_DATE_STRUCT.
[d] Les nombres de cette liste sont les nombres stockés dans les champs de la structure SQL_TIMESTAMP_STRUCT.