Открытие QSqlDatabase всегда возвращает true после обновления

После обновления 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();

Я скомпилировал библиотеки Qt sql с последней версией mysql (5.6.x).


person OnWhenReady    schedule 08.10.2015    source источник


Ответы (1)


На самом деле это была зарегистрированная ошибка: QSqlDatabase::open всегда возвращает true с QMYSQL. На странице показано, что проблема была решена 15 сентября 15 г. в 7:03 и реализована в версии 5.5.1, но это, однако, до альфа-выпуск 5.6, который был выпущен 8/сен/15, поэтому это объясняет, почему он еще не исправлен в вашей версии.

person agold    schedule 08.10.2015
comment
Большое тебе спасибо. Это было/раздражает как ****. Пробовал на 5.5.0 и 5.6 с тремя разными версиями mysql (5.1, 5.5, 5.6) и все равно получил такое же поведение. Я действительно не знаю, почему я не нашел отчет об ошибке. Ваше здоровье. - person OnWhenReady; 08.10.2015
comment
onwhenready. Не могли бы вы добавить подробности о том, как применение патча решило проблему и шаги по применению патча? Имея точно такую ​​​​же проблему в моем приложении. ТИА - person user3393753; 19.10.2015