diff --git a/src/sql/kernel/qsqlerror.cpp b/src/sql/kernel/qsqlerror.cpp index 1e093c236c3..7483a52e5c7 100644 --- a/src/sql/kernel/qsqlerror.cpp +++ b/src/sql/kernel/qsqlerror.cpp @@ -126,22 +126,26 @@ QSqlError &QSqlError::operator=(const QSqlError &other) } /*! - Compare the \a other error's values to this error and returns \c true, if it equal. + Compare the \a other error's type() and nativeErrorCode() + to this error and returns \c true, if it equal. */ bool QSqlError::operator==(const QSqlError &other) const { - return (d->errorType == other.d->errorType); + return (d->errorType == other.d->errorType && + d->errorCode == other.d->errorCode); } /*! - Compare the \a other error's values to this error and returns \c true if it is not equal. + Compare the \a other error's type() and nativeErrorCode() + to this error and returns \c true if it is not equal. */ bool QSqlError::operator!=(const QSqlError &other) const { - return (d->errorType != other.d->errorType); + return (d->errorType != other.d->errorType || + d->errorCode != other.d->errorCode); } diff --git a/tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp b/tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp index c83867fcc4d..ddd4e2cda6a 100644 --- a/tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp +++ b/tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp @@ -108,12 +108,16 @@ void tst_QSqlError::moveOperator() void tst_QSqlError::operators() { - QSqlError error1(QString(), QString(), QSqlError::NoError); - QSqlError error2(QString(), QString(), QSqlError::NoError); - QSqlError error3(QString(), QString(), QSqlError::UnknownError); + QSqlError error1(QStringLiteral("a"), QStringLiteral("b"), QSqlError::NoError, QStringLiteral("ec1")); + QSqlError error2(QStringLiteral("c"), QStringLiteral("d"), QSqlError::NoError, QStringLiteral("ec1")); + QSqlError error3(QString(), QString(), QSqlError::UnknownError, QStringLiteral("ec1")); + QSqlError error4(QString(), QString(), QSqlError::NoError, QStringLiteral("ec2")); + QSqlError error5(QString(), QString(), QSqlError::UnknownError, QStringLiteral("ec2")); QCOMPARE(error1, error2); QVERIFY(error1 != error3); + QVERIFY(error1 != error4); + QVERIFY(error4 != error5); } void tst_QSqlError::qtbug_74575()