QSqlDatabase: make evident the name of the driver that failed to load
Tell me this isn't confusing: Got keys from plugin meta data ("QMYSQL3", "QMYSQL", "QMARIADB") QSqlDatabase: driver not loaded QSqlDatabase: available drivers: QSQLITE QMARIADB QMYSQL QMYSQL3 This also merges the two messages into a single line, which is nicer for rich logging environments. Pick-to: 6.8 Change-Id: Ieb80c6571213dddc518bfffdb6c86632df8f932c Reviewed-by: Christian Ehrlicher <ch.ehrlicher@gmx.de> (cherry picked from commit 4216ba7c37dbdf67bfb5dc793d01a232ce4ea762)
This commit is contained in:
parent
df8f7becfc
commit
22dd10e261
@ -660,9 +660,9 @@ void QSqlDatabasePrivate::init(const QString &type)
|
|||||||
driver = qLoadPlugin<QSqlDriver, QSqlDriverPlugin>(loader(), type);
|
driver = qLoadPlugin<QSqlDriver, QSqlDriverPlugin>(loader(), type);
|
||||||
|
|
||||||
if (!driver) {
|
if (!driver) {
|
||||||
qCWarning(lcSqlDb, "QSqlDatabase: %ls driver not loaded", qUtf16Printable(type));
|
qCWarning(lcSqlDb,
|
||||||
qCWarning(lcSqlDb, "QSqlDatabase: available drivers: %ls",
|
"QSqlDatabase: can not load requested driver '%ls', available drivers: %ls",
|
||||||
qUtf16Printable(QSqlDatabase::drivers().join(u' ')));
|
qUtf16Printable(type), qUtf16Printable(QSqlDatabase::drivers().join(u' ')));
|
||||||
if (QCoreApplication::instance() == nullptr)
|
if (QCoreApplication::instance() == nullptr)
|
||||||
qCWarning(lcSqlDb, "QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins");
|
qCWarning(lcSqlDb, "QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins");
|
||||||
driver = shared_null()->driver;
|
driver = shared_null()->driver;
|
||||||
|
@ -383,8 +383,9 @@ void tst_QSqlDatabase::generic_data(const QString& engine)
|
|||||||
|
|
||||||
void tst_QSqlDatabase::addDatabase()
|
void tst_QSqlDatabase::addDatabase()
|
||||||
{
|
{
|
||||||
QTest::ignoreMessage(QtWarningMsg, "QSqlDatabase: BLAH_FOO_NONEXISTENT_DRIVER driver not loaded");
|
QTest::ignoreMessage(QtWarningMsg,
|
||||||
QTest::ignoreMessage(QtWarningMsg, qPrintable("QSqlDatabase: available drivers: " + QSqlDatabase::drivers().join(QLatin1Char(' '))));
|
"QSqlDatabase: can not load requested driver 'BLAH_FOO_NONEXISTENT_DRIVER', available drivers: "
|
||||||
|
+ QSqlDatabase::drivers().join(QLatin1Char(' ')).toLatin1());
|
||||||
{
|
{
|
||||||
QSqlDatabase db = QSqlDatabase::addDatabase("BLAH_FOO_NONEXISTENT_DRIVER",
|
QSqlDatabase db = QSqlDatabase::addDatabase("BLAH_FOO_NONEXISTENT_DRIVER",
|
||||||
"INVALID_CONNECTION");
|
"INVALID_CONNECTION");
|
||||||
|
@ -2915,10 +2915,10 @@ void tst_QSqlQuery::queryOnInvalidDatabase()
|
|||||||
QSqlDatabase::removeDatabase("invalidConnection");
|
QSqlDatabase::removeDatabase("invalidConnection");
|
||||||
});
|
});
|
||||||
// Note: destruction of db needs to happen before we call removeDatabase.
|
// Note: destruction of db needs to happen before we call removeDatabase.
|
||||||
QTest::ignoreMessage(QtWarningMsg, "QSqlDatabase: INVALID driver not loaded");
|
|
||||||
#if QT_CONFIG(regularexpression)
|
#if QT_CONFIG(regularexpression)
|
||||||
QTest::ignoreMessage(QtWarningMsg,
|
QTest::ignoreMessage(QtWarningMsg,
|
||||||
QRegularExpression("QSqlDatabase: available drivers: "));
|
QRegularExpression("QSqlDatabase: can not load requested driver "
|
||||||
|
"'INVALID', available drivers: "));
|
||||||
#endif
|
#endif
|
||||||
QSqlDatabase db = QSqlDatabase::addDatabase("INVALID", "invalidConnection");
|
QSqlDatabase db = QSqlDatabase::addDatabase("INVALID", "invalidConnection");
|
||||||
QVERIFY(db.lastError().isValid());
|
QVERIFY(db.lastError().isValid());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user