Supported Data Types

When reading data from a PRO/5 data source, the BASIS ODBC Driver maps data with the following characteristics (as defined in the Data Dictionary) to the following SQL Data Types:

Type

SQL Type

NAME

C(n*) (n <=255)

SQL_VARCHAR

"VARCHAR"

C(n*) (n > 255)

SQL_LONGVARCHAR *

"LONG VARCHAR"

C(n)

SQL_CHAR

"CHAR"

C(26) (Typedef = TIMESTAMP)

SQL_TIMESTAMP

"TIMESTAMP" *

d (date suffix)

SQL_DATE

"DATE"

N

SQL_NUMERIC **

"NUMERIC"

B

SQL_REAL

"REAL"

D

SQL_REAL

"REAL"

I(4)

SQL_INTEGER

"INTEGER"

I(2)

SQL_SMALLINT

"SMALLINT"

I(1)

SQL_TINYINT

"BYTE"

I(not 4,2, or 1)

SQL_CHAR

"CHAR"

U(4)

SQL_INTEGER

"UNSIGNED INTEGER"

U(2)

SQL_SMALLINT

"UNSIGNED SMALLINT"

U(1)

SQL_TINYINT

"UNSIGNED BYTE"

U(not 4,2, or 1)

SQL_CHAR

"CHAR"

X

SQL_FLOAT

"FLOAT"

F

SQL_FLOAT

"FLOAT"

Y

SQL_DOUBLE

"DOUBLE"

* When the BASIS ODBC Driver encounters a variable length character field defined by a length of more than 255 bytes, it will inform the calling application that the column is of type SQL_LONGVARCHAR. Many applications treat SQL_LONGVARCHAR as a 'Memo' field.

**The SQL_NUMERIC types have a precision of 15 instead of 16. Microsoft Access now treats numerics as numerics, not as strings. When doing a CREATE TABLE, the following SQL data types map to the corresponding PRO/5 data types:

SQL Data Types

PRO/5 Data Types

CHARACTER

C

CHAR

C

CHARACTER VARYING

C ** (Variable length character field padded with null characters).

CHAR VARYING

C ** (Variable length character field padded with null characters).

VARCHAR

C ** (Variable length character field padded with null characters).

FLOAT

F

DOUBLE

Y

REAL

B

BYTE

I(1)

SMALLINT

I(2)

INTEGER

I(4)

UNSIGNED BYTE

U(1)

UNSIGNED SMALLINT

U(2)

UNSIGNED INTEGER

U(4)

TIMESTAMP

C(26) (Typedef = "TIMESTAMP")

DATE

If Date Type set in data source setup, then C(OEM date size) else I(4) for Julian.

OEM Dates that cannot be recognized will be treated as NULLs.