Qt Reference Documentation

# QSql Namespace

The QSql namespace contains miscellaneous identifiers used throughout the Qt SQL library. More...

     #include <QtSql>

- Qt 3 support members

## Types

enum | Location { BeforeFirstRow, AfterLastRow }
enum | NumericalPrecisionPolicy { LowPrecisionInt32, LowPrecisionInt64, LowPrecisionDouble, HighPrecision }
flags | ParamType
enum | ParamTypeFlag { In, Out, InOut, Binary }
enum | TableType { Tables, SystemTables, Views, AllTables }

## Detailed Description

The QSql namespace contains miscellaneous identifiers used throughout the Qt SQL library.

See also QtSql Module.

## Type Documentation

### enum QSql::Location

This enum type describes special SQL navigation locations:

Constant | Value | Description
--- | --- | ---
`QSql::BeforeFirstRow` | `-1` | Before the first record.
`QSql::AfterLastRow` | `-2` | After the last record.

See also QSqlQuery::at().

### enum QSql::NumericalPrecisionPolicy

This enum type describes at which precision levels numercial values are read from a database.

Some databases support numerical values with a precision that is not storable in a C++ basic data type. The default behavior is to bind these values as a QString. This enum can be used to override this behavior.

Constant | Value | Description
--- | --- | ---
`QSql::LowPrecisionInt32` | `0x01` | Force 32bit integer values. In case of floating point numbers, the fractional part is silently discarded.
`QSql::LowPrecisionInt64` | `0x02` | Force 64bit integer values. In case of floating point numbers, the fractional part is silently discarded.
`QSql::LowPrecisionDouble` | `0x04` | Force `double` values.
`QSql::HighPrecision` | `0` | The default behavior - try to preserve maximum precision.

Note: The actual behaviour if an overflow occurs is driver specific. The Oracle database just returns an error in this case.

### enum QSql::ParamTypeFlag
flags QSql::ParamType

This enum is used to specify the type of a bind parameter.

Constant | Value | Description
--- | --- | ---
`QSql::In` | `0x00000001` | The bind parameter is used to put data into the database.
`QSql::Out` | `0x00000002` | The bind parameter is used to receive data from the database.
`QSql::InOut` | `In | Out` | The bind parameter is used to put data into the database; it will be overwritten with output data on executing a query.
`QSql::Binary` | `0x00000004` | This must be OR'd with one of the other flags if you want to indicate that the data being transferred is raw binary data.

The ParamType type is a typedef for QFlags<ParamTypeFlag>. It stores an OR combination of ParamTypeFlag values.

### enum QSql::TableType

This enum type describes types of SQL tables.

Constant | Value | Description
--- | --- | ---
`QSql::Tables` | `0x01` | All the tables visible to the user.
`QSql::SystemTables` | `0x02` | Internal tables used by the database.
`QSql::Views` | `0x04` | All the views visible to the user.
`QSql::AllTables` | `0xff` | All of the above.