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