diff options
Diffstat (limited to 'src/sql')
-rw-r--r-- | src/sql/kernel/qsqldatabase.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp index 291b35f8a6..2c7b4b83db 100644 --- a/src/sql/kernel/qsqldatabase.cpp +++ b/src/sql/kernel/qsqldatabase.cpp @@ -229,12 +229,14 @@ QSqlDatabase QSqlDatabasePrivate::database(const QString& name, bool open) dict->lock.lockForRead(); QSqlDatabase db = dict->value(name); dict->lock.unlock(); - if (db.driver() && db.driver()->thread() != QThread::currentThread()) { + if (!db.isValid()) + return db; + if (db.driver()->thread() != QThread::currentThread()) { qWarning("QSqlDatabasePrivate::database: requested database does not belong to the calling thread."); return QSqlDatabase(); } - if (db.isValid() && !db.isOpen() && open) { + if (open && !db.isOpen()) { if (!db.open()) qWarning() << "QSqlDatabasePrivate::database: unable to open database:" << db.lastError().text(); |