Data Types for Qt-supported Database Systems

Recommended data types for database systems

IBM DB2 Data Types

IBM DB2 data type

SQL type description

Recommended input (C++ or Qt data type)

SMALLINT

16-bit signed integer

typedef qint16

INTEGER

32-bit signed integer

typedef qint32

BIGINT

64-bit signed integer

typedef qint64

REAL

32-bit Single-precision floating point

typedef qreal

DOUBLE PRECISION

64-bit Double-precision floating point

Mapped to QString for high precision doubles, otherwise qreal

FLOAT

64-bit Double-precision floating point

typedef qreal

CHAR

Fixed-length, null-terminated character string

Mapped to QString

VARCHAR

Null-terminated varying length string

Mapped to QString

LONG VARCHAR

Not null-terminated varying length character string

Mapped to QString

BLOB

Not null-terminated varying binary string with 4-byte string length indicator

Mapped to QByteArray

CLOB

Character large string object

Mapped to QString

DATE

Null-terminated character string of the following format: yyyy-mm-dd

Mapped to QDate

TIME

Null-terminated character string of the following format: hh.mm.ss

Mapped to QTime

TIMESTAMP

Null-terminated character string of the following format: yyyy-mm-dd-hh.mm.ss.nnnnnn

Mapped to QDateTime

Borland InterBase Data Types

Borland InterBase data type

SQL type description

Recommended input (C++ or Qt data type)

BOOLEAN

Boolean

bool

TINYINT

8 bit signed integer

typedef qint8

SMALLINT

16-bit signed integer

typedef qint16

INTEGER

32-bit signed integer

typedef qint32

BIGINT LONG

64-bit signed integer

typedef qint64

REAL FLOAT

32-bit floating point

typedef qreal

FLOAT

64-bit floating point

typedef qreal

DOUBLE

64-bit floating point

typedef qreal

DOUBLE PRECISION

64-bit Double-precision floating point

Mapped to QString for high precision doubles, otherwise qreal

VARCHAR STRING

Character string, Unicode

Mapped to QString

CLOB

Character large string object

Mapped to QString

DATE

Displays date. Format: ‘yyyy-mm-dd’

Mapped to QDate

TIME

Displays time. Format is ‘hh:mm:ss’ in 24-hour format

Mapped to QTime

TIMESTAMP

Displays a timestamp. Format is ‘yyyy-mm-dd hh:mm:ss’

Mapped to QDateTime

MySQL Data Types

MySQL data type

SQL type description

Recommended input (C++ or Qt data type)

TINYINT

8 bit signed integer

typedef qint8

TINYINT UNSIGNED

8 bit unsigned integer

typedef quint8

SMALLINT

16-bit signed integer

typedef qint16

SMALLINT UNSIGNED

16-bit unsigned integer

typedef quint16

INT

32-bit signed integer

typedef qint32

INT UNSIGNED

32-bit unsigned integer

typedef quint32

BIGINT

64-bit signed integer

typedef qint64

FLOAT

32-bit Floating Point

typedef qreal

DOUBLE

64-bit Floating Point

Mapped to QString for high precision doubles, otherwise qreal

CHAR

Character string

Mapped to QString

VARCHAR

Character string

Mapped to QString

TINYTEXT

Character string

Mapped to QString

TEXT

Character string

Mapped to QString

MEDIUMTEXT

Character string

Mapped to QString

LONGTEXT

Character string

Mapped to QString

CLOB

Character large string object

Mapped to QString

all BLOB types

BLOB

Mapped to QByteArray

DATE

Date without Time

Mapped to QDate

DATETIME

Date and Time

Mapped to QDateTime

TIMESTAMP

Date and Time

Mapped to QDateTime

TIME

Time

Mapped to QTime

YEAR

Year (int)

Mapped to QDateTime

ENUM

Enumeration of Value Set

Mapped to QString

Oracle Call Interface Data Types

Oracle Call Interface data type

SQL type description

Recommended input (C++ or Qt data type)

NUMBER

FLOAT, DOUBLE, PRECISIONc REAL

Mapped to QString for high precision doubles, otherwise qreal

NUMBER(38)

INTEGER INT SMALLINT

typedef qint8/16/32/64

NUMBER(p,s)

NUMERIC(p,s) DECIMAL(p,s)a

Mapped to QString

NVARCHAR2(n)

Character string (NATIONAL CHARACTER VARYING(n) NATIONAL CHAR VARYING(n) NCHAR VARYING(n))

Mapped to QString

NCHAR(n)

Character string (NATIONAL CHARACTER(n) NATIONAL CHAR(n) NCHAR(n))

Mapped to QString

CHAR(n)

Character string (CHARACTER(n) CHAR(n))

Mapped to QString

CLOB

Character large string object

Mapped to QString

BLOB

A binary large object

Mapped to QByteArray

TIMESTAMP

Year, month, and day values of date, as well as hour, minute, and second values of time

Mapped to QDateTime

ODBC Data Types

ODBC data type

SQL type description

Recommended input (C++ or Qt data type)

BIT

Boolean

BOOL

TINYINT

8 bit integer

typedef qint8

SMALLINT

16-bit signed integer

typedef qint16

INTEGER

32-bit signed integer

typedef qint32

BIGINT

64-bit signed integer

typedef qint64

REAL

32-bit Single-precision floating point

typedef qreal

FLOAT

64-bit Double floating point

typedef qreal

DOUBLE

64-bit Double floating point

Mapped to QString for high precision doubles, otherwise qreal

CHAR

Character string

Mapped to QString

VARCHAR

Character string

Mapped to QString

LONGVARCHAR

Character string

Mapped to QString

CLOB

Character large string object

Mapped to QString

DATE

Character string

Mapped to QDate

TIME

Character Time, Character string

Mapped to QTime

TIMESTAMP

Character Time, Character string

Mapped to QDateTime

PostgreSQL Data Types

PostgreSQL data type

SQL type description

Recommended input (C++ or Qt data type)

BOOLEAN

Boolean

bool

SMALLINT

16-bit signed integer

typedef qint16

INTEGER

32-bit signed integer

typedef qint32

BIGINT

64-bit signed integer

typedef qint64

REAL

32-bit variable-precision floating point

typedef qreal

DOUBLE PRECISION

64-bit variable-precision floating point

Mapped to QString for high precision doubles, otherwise qreal

DECIMAL VARIABLE

user-specified precision, exact

typedef qreal

NUMERIC VARIABLE

user-specified precision, exact

typedef qreal

VARCHAR

variable-length character string

Mapped to QString

CHARACTER

Character string of fixed-length

Mapped to QString

TEXT

Character string of variable-length

Mapped to QString

CLOB

Character large string object

Mapped to QString

TIMESTAMP

8 bytes, both date and time

Mapped to QDateTime

TIMESTAMP

8 bytes, both date and time, with time zone

Mapped to QDateTime

DATE

4 bytes, dates only

Mapped to QDate

TIME

8 bytes, times of day only 00:00:00.00 - 23:59:59.99

Mapped to QTime

TIME

12 bytes times of day only, with time zone 00:00:00.00+12

Mapped to QDateTime

QSQLITE SQLite version 3 Data Types

QSQLITE SQLite version 3 data type

SQL type description

Recommended input (C++ or Qt data type)

NULL

NULL value.

NULL

INTEGER

Signed integer, stored in 8, 16, 24, 32, 48, or 64-bits depending on the magnitude of the value.

typedef qint8/16/32/64

REAL

64-bit floating point value.

typedef qreal

TEXT

Character string (UTF-8, UTF-16BE or UTF-16-LE).

Mapped to QString

CLOB

Character large string object

Mapped to QString

BLOB

The value is a BLOB of data, stored exactly as it was input.

Mapped to QByteArray

Mimer SQL Data Types

Mimer SQL type

SQL type description

Recommended input (C++ or Qt data type)

SMALLINT

16-bit signed integer

typedef qint16

INTEGER

32-bit signed integer

typedef qint32

INTEGER(n)

Integer with up to 45 digits precision

Mapped to QString

BIGINT

64-bit signed integer

typedef qint64

REAL

32-bit Single-precision IEEE floating point

typedef float

DOUBLE PRECISION

64-bit Double-precision IEEE floating point

Mapped to QString for high precision doubles, otherwise qreal

FLOAT

64-bit Double-precision IEEE floating point

Mapped to QString for high precision doubles, otherwise qreal

FLOAT(n)

Floating point with up to 45 digits precision

Mapped to QString

DECIMAL(p,s)

Decimal with up to 45 digits precision and scale

Mapped to QString

CHAR

Fixed-length character Latin-1 string (CHAR or character)

Mapped to QString

VARCHAR

Variable length Latin-1 string (VARCHAR or CHARACTER VARYING)

Mapped to QString

NCHAR

Fixed-length Unicode string (NCHAR or NATIONAL CHARACTER)

Mapped to QString

NVARCHAR

Variable length Unicode string (NVARCHAR or NATIONAL CHARACTER VARYING)

Mapped to QString

BINARY

Fixed length binary data

Mapped to QByteArray

VARBINARY

Variable length binary data (VARBINARY or BINARY VARYING)

Mapped to QByteArray

BLOB

Binary large object (BLOB or BINARY LARGE OBJECT)

Mapped to QByteArray

CLOB

Latin-1 character large object (CLOB or CHARACTER LARGE OBJECT)

Mapped to QString

NCLOB

Unicode character large object (NCLOB or NATIONAL CHARACTER LARGE OBJECT)

Mapped to QString

DATE

Date consisting of year, month, and day

Mapped to QDate

TIME

Time consisting of hours, minute, seconds with optional fractional seconds

Mapped to QTime

TIMESTAMP

Date and time with optional fractional seconds

Mapped to QDateTime

BUILTIN.UUID

Universally unique identifier

Mapped to QUuid

BOOLEAN

Boolean

bool

INTERVAL YEAR(7)

Year, format ‘±yyyyyyy’ (max precision)

Mapped to QString

INTERVAL YEAR(7) TO MONTH

Year to month, format ‘±yyyyyyy-mm’ (max precision)

Mapped to QString

INTERVAL MONTH(7)

Month, format ‘±mmmmmmm’ (max precision)

Mapped to QString

INTERVAL DAY(7)

Day, format ‘±ddddddd’ (max precision)

Mapped to QString

INTERVAL DAY(7) TO HOUR

Day to hour, format ‘±ddddddd hh’ (max precision)

Mapped to QString

INTERVAL DAY(7) TO MINUTE

Day to minute, format ‘±ddddddd hh:mm’ (max precision)

Mapped to QString

INTERVAL DAY(7) TO SECOND(9)

Day to second, format ‘±ddddddd hh:mm:ss[.fffffffff]’ (max precision)

Mapped to QString

INTERVAL HOUR(8)

Hour, format ‘±hhhhhhhh’ (max precision)

Mapped to QString

INTERVAL HOUR(8) TO MINUTE

Hour to minute, format ‘±hhhhhhhh:mm’ (max precision)

Mapped to QString

INTERVAL HOUR(8) TO SECOND(9)

Hour to second, format ‘±hhhhhhhh:mm:ss[.fffffffff]’ (max precision)

Mapped to QString

INTERVAL MINUTE(10)

Minute, format ‘±mmmmmmmmmm’ (max precision)

Mapped to QString

INTERVAL MINUTE(10) TO SECOND(9)

Minute to second, format ‘±mmmmmmmmmm:ss[.fffffffff]’ (max precision)

Mapped to QString

INTERVAL SECOND(12,9)

Second, format ‘±ssssssssssss[.fffffffff]’ (max precision)

Mapped to QString