diff options
author | Marcel Krems <m.krems@software-vision.eu> | 2013-12-16 23:26:44 +0100 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-12-20 16:27:41 +0100 |
commit | 106316198d78e97ceaf3bd62203518bd85a45fda (patch) | |
tree | 3c6b5ef3b3a6c45ce203fede89c3cac82ff257be /tests/auto/sql | |
parent | e35c2c57cffd9e69ba69193e5cf345fba3447fee (diff) |
Enable QSqlError to handle alphanumeric error codes.
Some database systems (like PostgreSQL) use alphanumeric error codes.
Introduce a new method nativeErrorCode() which replaces number().
If the error code cannot be converted to int, number() will return 0.
Task-number: QTBUG-142
Change-Id: Ic7fba841737674b75c0c01c2263f51d2041da497
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Diffstat (limited to 'tests/auto/sql')
-rw-r--r-- | tests/auto/sql/kernel/qsqldatabase/tst_databases.h | 8 | ||||
-rw-r--r-- | tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp | 18 |
2 files changed, 22 insertions, 4 deletions
diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h index 69ecbcb019..59a16bc569 100644 --- a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h +++ b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h @@ -515,8 +515,8 @@ public: static QByteArray printError( const QSqlError& err ) { QString result; - if(err.number() > 0) - result += '(' + QString::number(err.number()) + ") "; + if (!err.nativeErrorCode().isEmpty()) + result += '(' + err.nativeErrorCode() + ") "; result += '\''; if(!err.driverText().isEmpty()) result += err.driverText() + "' || '"; @@ -527,8 +527,8 @@ public: static QByteArray printError( const QSqlError& err, const QSqlDatabase& db ) { QString result(dbToString(db) + ": "); - if(err.number() > 0) - result += '(' + QString::number(err.number()) + ") "; + if (!err.nativeErrorCode().isEmpty()) + result += '(' + err.nativeErrorCode() + ") "; result += '\''; if(!err.driverText().isEmpty()) result += err.driverText() + "' || '"; diff --git a/tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp b/tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp index bee4441c0f..9763e3e7e6 100644 --- a/tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp +++ b/tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp @@ -120,6 +120,24 @@ void tst_QSqlError::construction() QSqlError obj4; QVERIFY(!obj4.isValid()); + + QSqlError obj5(QStringLiteral("drivertext"), QStringLiteral("databasetext"), + QSqlError::UnknownError, QStringLiteral("123")); + QCOMPARE(obj5.driverText(), QString("drivertext")); + QCOMPARE(obj5.databaseText(), QString("databasetext")); + QCOMPARE(obj5.type(), QSqlError::UnknownError); + QCOMPARE(obj5.number(), 123); + QCOMPARE(obj5.nativeErrorCode(), QStringLiteral("123")); + QVERIFY(obj5.isValid()); + + QSqlError obj6(QStringLiteral("drivertext"), QStringLiteral("databasetext"), + QSqlError::UnknownError, QStringLiteral("Err123")); + QCOMPARE(obj6.driverText(), QString("drivertext")); + QCOMPARE(obj6.databaseText(), QString("databasetext")); + QCOMPARE(obj6.type(), QSqlError::UnknownError); + QCOMPARE(obj6.number(), 0); + QCOMPARE(obj6.nativeErrorCode(), QStringLiteral("Err123")); + QVERIFY(obj6.isValid()); } void tst_QSqlError::operators() |