|  | Home · All Classes · Modules

# QSql Class Reference
[QtSql module]

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

### Types

- enum Location { BeforeFirstRow, AfterLastRow }
- enum NumericalPrecisionPolicy { LowPrecisionInt32, LowPrecisionInt64, LowPrecisionDouble, HighPrecision }
- class 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.

## Type Documentation

### 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().

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

### QSql.ParamTypeFlag

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.

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