QSqlError Class

The QSqlError class provides SQL database error information. More...

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

Public Types

enum ErrorType { NoError, ConnectionError, StatementError, TransactionError, UnknownError }

Public Functions

QSqlError(const QString &driverText = QString(), const QString &databaseText = QString(), QSqlError::ErrorType type = NoError, const QString &code = QString())
QSqlError(const QSqlError &other)
QSqlError(QSqlError &&other)
~QSqlError()
QString databaseText() const
QString driverText() const
bool isValid() const
QString nativeErrorCode() const
void swap(QSqlError &other)
QString text() const
QSqlError::ErrorType type() const
bool operator!=(const QSqlError &other) const
QSqlError &operator=(const QSqlError &other)
QSqlError &operator=(QSqlError &&other)
bool operator==(const QSqlError &other) const

Detailed Description

A QSqlError object can provide database-specific error data, including the driverText() and databaseText() messages (or both concatenated together as text()), and the nativeErrorCode() and type().

See also QSqlDatabase::lastError() and QSqlQuery::lastError().

Member Type Documentation

enum QSqlError::ErrorType

This enum type describes the context in which the error occurred, e.g., a connection error, a statement error, etc.

ConstantValueDescription
QSqlError::NoError0No error occurred.
QSqlError::ConnectionError1Connection error.
QSqlError::StatementError2SQL statement syntax error.
QSqlError::TransactionError3Transaction failed error.
QSqlError::UnknownError4Unknown error.

Member Function Documentation

QSqlError::QSqlError(const QString &driverText = QString(), const QString &databaseText = QString(), QSqlError::ErrorType type = NoError, const QString &code = QString())

Constructs an error containing the driver error text driverText, the database-specific error text databaseText, the type type and the error code code.

QSqlError::QSqlError(const QSqlError &other)

Creates a copy of other.

[noexcept] QSqlError::QSqlError(QSqlError &&other)

Move-constructs a QSqlError instance, making it point at the same object that other was pointing to.

Note: The moved-from object other is placed in a partially-formed state, in which the only valid operations are destruction and assignment of a new value.

[noexcept] QSqlError::~QSqlError()

Destroys the object and frees any allocated resources.

QString QSqlError::databaseText() const

Returns the text of the error as reported by the database. This may contain database-specific descriptions; it may be empty.

See also driverText() and text().

QString QSqlError::driverText() const

Returns the text of the error as reported by the driver. This may contain database-specific descriptions. It may also be empty.

See also databaseText() and text().

bool QSqlError::isValid() const

Returns true if an error is set, otherwise false.

Example:

QSqlQueryModel model;
model.setQuery("select * from myTable");
if (model.lastError().isValid())
    qDebug() << model.lastError();

See also type().

QString QSqlError::nativeErrorCode() const

Returns the database-specific error code, or an empty string if it cannot be determined.

Note: Some drivers (like DB2 or ODBC) may return more than one error code. When this happens, ; is used as separator between the error codes.

[noexcept] void QSqlError::swap(QSqlError &other)

Swaps error other with this error. This operation is very fast and never fails.

QString QSqlError::text() const

This is a convenience function that returns databaseText() and driverText() concatenated into a single string.

See also driverText() and databaseText().

QSqlError::ErrorType QSqlError::type() const

Returns the error type, or -1 if the type cannot be determined.

bool QSqlError::operator!=(const QSqlError &other) const

Compare the other error's type() and nativeErrorCode() to this error and returns true if it is not equal.

QSqlError &QSqlError::operator=(const QSqlError &other)

Assigns the other error's values to this error.

[noexcept] QSqlError &QSqlError::operator=(QSqlError &&other)

Move-assigns other to this QSqlError instance.

Note: The moved-from object other is placed in a partially-formed state, in which the only valid operations are destruction and assignment of a new value.

bool QSqlError::operator==(const QSqlError &other) const

Compare the other error's type() and nativeErrorCode() to this error and returns true, if it equal.

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.