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();

Qt sql ライブラリを最新の mysql バージョン (5.6.x) に対してコンパイルしました。

4

1 に答える 1

4

これは実際に報告されたバグでした: QSqlDatabase::open は常に QMYSQL で true を返します。ページは、それが 15/Sep/15 7:03 AM に解決され、バージョン5.5.1で実装されたことを示していますが、これは5.6 アルファ リリースの前であり、それは 8/Sep/15 であったため、その理由が説明されています。お使いのバージョンではまだ修正されていません。

于 2015-10-08T13:13:08.850 に答える