Skip to main content
Version: 10.1

ODBC scalar data types

ODBC scalar data types

Mapping of USoft Developer data types to ODBC  data types is as follows:

USoft data typeODBC data type
BINARYSQL_BINARY
BITSQL_BIT
CHARSQL_CHAR
CLOBSQL_LONGVARCHAR
DATESQL_TIMESTAMP
DATETIMESQL_TIMESTAMP
DECIMALSQL_DECIMAL
DOUBLE PRECISIONSQL_FLOAT
FLOATSQL_FLOAT
FLOAT4SQL_FLOAT
IMAGESQL_LONGVARBINARY
INTSQL_INTEGER
INTEGERSQL_INTEGER
INTEGER1SQL_TINYINT
LONGSQL_LONGVARCHAR
LONG VARBINARYSQL_LONGVARBINARY
LONG VARCHARSQL_LONGVARCHAR
LONGRAWSQL_LONGVARBINARY
MONEYSQL_FLOAT
NCHARSQL_CHAR
NUMBERSQL_NUMERIC
NUMERICSQL_NUMERIC
NVARCHARSQL_VARCHAR
RAWSQL_VARBINARY
REALSQL_REAL
SMALLDATETIMESQL_TIMESTAMP
SMALLINTSQL_SMALLINT
SMALLMONEYSQL_REAL
TEXTSQL_LONGVARCHAR
TIMESQL_TIMESTAMP
TIMESTAMPSQL_TIMESTAMP
TINYINTSQL_TINYINT
VARBINARYSQL_VARBINARY
VARCHARSQL_VARCHAR
VARCHAR2SQL_VARCHAR

ODBC Default datatypes

When application tables are generated directly on ODBC, USoft Developer retrieves the ODBC DBMS specific data type names from the connected ODBC driver, using the function: SQLGetTypeInfo. If the ODBC-driver does not support this level-1 function or when generating SQL script files (containing CREATE TABLE and INDEX statements), then the following default data type names are used:

Required data typeDefault name
SQL_CHARCHAR
SQL_VARCHARVARCHAR
SQL_LONGVARCHARLONG VARCHAR
SQL_DECIMALDECIMAL
SQL_NUMERICNUMERIC
SQL_INTEGERINTEGER
SQL_SMALLINTSMALLINT
SQL_TINYINTTINYINT
SQL_REALREAL
SQL_FLOATFLOAT
SQL_BITBIT
SQL_BINARYBINARY
SQL_VARBINARYVARBINARY
SQL_LONGVARBINARYLONG VARBINARY
SQL_DATEDATE
SQL_TIMETIME
SQL_TIMESTAMPTIMESTAMP

ODBC substitute data types

When application tables are generated directly on ODBC and the ODBC driver does support the level 1 function SQLGetTypeInfo, but the ODBC-driver does not support a particular ODBC SQL data type, then the following table shows the data type that will be substituted. If that data type is also not supported, then the substitute for that will be used, and so on, down the table.

Required data typeSubstitute
SQL_CHARSQL_VARCHAR
SQL_VARCHARSQL_CHAR
SQL_DECIMALSQL_NUMERIC
SQL_NUMERICSQL_DECIMAL
SQL_SMALLINTSQL_INTEGER
SQL_INTEGERSQL_SMALLINT
SQL_TINYINTSQL_SMALLINT
SQL_REALSQL_FLOAT
SQL_FLOATSQL_REAL
SQL_BINARYSQL_VARBINARY
SQL_VARBINARYSQL_BINARY
SQL_BITSQL_BINARY
SQL_BITSQL_CHAR
SQL_TIMESTAMPSQL_DATE

When application tables are generated, USoft Developer will rename existing tables before creating the new application tables. Because "RENAME TABLE" is not defined in the ODBC SQL syntax specification, USoft Developer will generate the following standard syntax when generating SQL-script files:

ALTER TABLE *table-old-name* RENAME TABLE *table-new-name*

This may result in errors when running the SQL-script file for the specific ODBC DBMS because the rename syntax is not correct. If this is the case, you must change this syntax into the ODBC DBMS-specific syntax. To avoid problems with non-executable SQL script files for ODBC databases, always try to generate application tables by connecting directly to the ODBC DBMS via an ODBC driver (preferably one with ODBC-API level-1 conformance).

Universal date_to_char and char_to_date functions are available for ODBC. The syntax is:

SELECT date_to_char( *expression, format* ) FROM table
SELECT char_to_date( expression, format ) FROM table