The following examples illustrate how the driver converts C data to SQL data:
C type identifier |
C data value |
SQL type identifier |
Column length |
SQL data value |
SQL- STATE |
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” represents a null-termination byte. The null-termination byte is required only if the length of the data is SQL_NTS.
[b]In addition to bytes for numbers, one byte is required for a sign and another byte is required for the decimal point.
[c]The numbers in this list are the numbers stored in the fields of the SQL_DATE_STRUCT structure.
[d]The numbers in this list are the numbers stored in the fields of the SQL_TIMESTAMP_STRUCT structure.