以下代码适用于MySql:
#include <QCoreApplication>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlRecord>
#include <QDebug>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("192.168.139.128");
db.setDatabaseName("qsql");
db.setUserName("user");
db.setPassword("pass");
if (!db.open()) {
qDebug() << "Error = " << db.lastError();
} else {
qDebug() << "Openned!" ;
}
QSqlQuery query("SELECT id, name FROM persons");
QSqlRecord record = query.record();
while (query.next()) {
QString id = query.value(record.indexOf("id")).toString();
QString name = query.value(record.indexOf("name")).toString();
qDebug() << query.at() << ":" << id << "," << name;
}
return a.exec();
}
问题是db.open()总是返回true,无论连接参数有多么错误。我知道这可能是Qt 5.5(我正在使用)中的已知错误,我想知道是否有解决方法或解决方案?
答案 0 :(得分:1)
是的,它是QTBUG-47784和相关的QTBUG-47452错误。两者都在Qt 5.5.1中修复。遗憾的是,如果不更改Qt的源代码或升级到5.5.1,就没有解决方案。