1

将 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 库。

4

1 回答 1

4

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

于 2015-10-08T13:13:08.850 回答