MDAC 2.5 SDK - ODBC Programmer's Reference
Appendix D: Data Types


 

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.