QSqlDatabase open 更新后总是返回true

Posted

技术标签:

【中文标题】QSqlDatabase open 更新后总是返回true【英文标题】:QSqlDatabase open always returns true after update 【发布时间】:2015-10-08 11:26:42 【问题描述】:

在将 Qt 从 5.5 更新到 5.6 之后,QSqlDatabase:open 始终返回 true - 即使主机不可访问和/或用户名/密码/数据库设置被设置为无意义。

测试代码:

QSqlDatabase* db = new QSqlDatabase(QSqlDatabase::addDatabase("Qmysql", "TESTCONNECTION"));
db->setHostName(ip);
db->setPort(port);
db->setUserName(user);
db->setPassword(pwd);
db->setDatabaseName(dbName);
db->setConnectOptions("MYSQL_OPT_CONNECT_TIMEOUT=4");
bool ok = db->open();

我针对最新的 mysql 版本 (5.6.x) 编译了 Qt sql 库。

【问题讨论】:

【参考方案1】:

这实际上是一个报告的错误:QSqlDatabase::open always returns true with QMYSQL。该页面显示它已在 2015 年 9 月 15 日上午 7:03 解决,并在版本 5.5.1 中实施,但这是在 2015 年 9 月 8 日的 5.6 alpha release 之前,所以这就解释了为什么它是尚未在您的版本中修复。

【讨论】:

非常感谢。这曾经/很烦人。在 5.5.0 和 5.6 上使用三个不同版本的 mysql(5.1、5.5、5.6)进行了尝试,但仍然得到相同的行为。我真的不知道为什么我没有找到错误报告。干杯。 onwhenready - 您能否详细说明应用补丁如何解决问题以及应用补丁的步骤?在我的应用程序中有完全相同的问题。 TIA

以上是关于QSqlDatabase open 更新后总是返回true的主要内容,如果未能解决你的问题,请参考以下文章

Documents.Open使用FileSystemObject返回“5174 - 找不到文件”,但并非总是如此

为啥 ContentProvider 在 App 更新后返回空游标?

fcntl F_GETLK 总是返回真

ubuntu下qt5和数据库连接失败,报错QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE

QSqlDatabase Transactions、QSqlQuery Creation 和 QSqlQuery 完成

Qt错误:QMessageBox: No such file or directory错误:'QsqlDatabase' has not been declared