summaryrefslogtreecommitdiffstats
path: root/tests/auto/sql
diff options
context:
space:
mode:
authorMarcel Krems <m.krems@software-vision.eu>2013-12-16 23:26:44 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-12-20 16:27:41 +0100
commit106316198d78e97ceaf3bd62203518bd85a45fda (patch)
tree3c6b5ef3b3a6c45ce203fede89c3cac82ff257be /tests/auto/sql
parente35c2c57cffd9e69ba69193e5cf345fba3447fee (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.h8
-rw-r--r--tests/auto/sql/kernel/qsqlerror/tst_qsqlerror.cpp18
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()