- Qt 6.5
- Qt SQL
- Database Classes
- QSql Namespace
- Qt 6.5.0 Reference Documentation

# QSql Namespace

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

Header: | #include <QSql>
CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmake: | QT += sql

- QSql is part of Database Classes.

## 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

See also Qt SQL.

## 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

Numerical values in a database can have precisions greater than their corresponding C++ types. This enum lists the policies for representing such values in the application.

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. This is the default policy.
`QSql::HighPrecision` | `0` | Strings will be used to preserve 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.