C to SQL Data Conversion Examples

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
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" 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.