Database Engines:odbc

ODBC data types Professional

The ODBCDBE supports numerous data types that may be available in data sources accessible via the ODBC 3.0 standard. Which data types are present in a table depends on the data source and/or the table definition, or table structure. A description of the data types recognized by the ODBCDBE is given in the following table.

Supported ODBC data types
ODBC-type Description
SQL_BIGINT Exact numeric value without decimal places Range: signed -2^63 to 2^63-1, unsigned 0 to 2^64-1
SQL_BINARY Binary data of fixed length.
SQL_BIT Single bit value.
SQL_CHAR Character data of fixed length.
SQL_DATETIME Date value Format: YYYYMMDD.
SQL_DECIMAL Signed exact numeric value with fixed number of decimal places.
SQL_DOUBLE Signed approximate numeric value with variable number of decimal places. Range: +- 10^-308 to 10^308.
SQL_FLOAT Signed approximate numeric value with variable number of decimal places. Range depends on field length.
SQL_GUID Globally unique identifier of fixed length. Format: ABCDEFGH-IJKL-MNOP-QRST-UVWXYZ012345
SQL_INTEGER Exact numeric value without decimal places. Range: signed -2^31 to 2^31-1, unsigned 0 to 2^32-1.
SQL_LONGVARBINARY Binary data of variable length. The maximum length is data source dependent.
SQL_LONGVARCHAR Character data of variable length. The maximum length is data source dependent.
SQL_NUMERIC Signed exact numeric value with fixed number of decimal places.
SQL_REAL Signed approximate numeric value with variable number of decimal places. Range: +- 10^-38 to 10^38.
SQL_SMALLINT Exact numeric value without decimal places Range: signed -2^15 to 2^15-1, unsigned 0 to 2^16-1.
SQL_TIME Time value. Format: HHMMSS.
SQL_TINYINT Exact numeric value without decimal places Range: signed -2^7 to 2^7-1, unsigned 0 to 2^8-1.
SQL_TIMESTAMP Combined date and time value Format is: YYYYMMDDHHMMSSssssssss with ssssssss being fractions of a second.
SQL_VARBINARY Binary data of variable length and fixed maximum length.
SQL_VARCHAR Character data of variable length and fixed maximum length.
SQL_WCHAR Wide character data (unicode) of fixed length.
SQL_WLONGVARCHAR wide character data (unicode) of variable length. The maximum length is data source dependent.
SQL_WVARCHAR Wide character data (unicode) of variable length and fixed maximum length.

The SQL_* #define constants in the left column are taken from the ODBC 3.0 SDK. They are used as generic identifiers for data types supported by a data source. When a database is inspected using the database administration tool included in the software providing the data source, the symbolic names of supported data types may differ from the SQL_* constants.

Length of numeric fields

The length of numeric fields exposed by a database administration tool for a SQL DBMS usually does not account for a +- sign and the decimal point. This means that a numeric field displayed as (SQL_NUMERIC,2,0) in the administration tool would be represented in Xbase++ by (N,3,0), since the minus sign is included in the field length. Likewise, a numeric field displayed as (SQL_NUMERIC,4,2) is represented in Xbase++ by (N,6,2). In this case, the minus sign and the decimal point are accounted for in the field length.

Feedback

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.