Собрал драйвер для
MySQL по инструкции
How to enable MySQL Support in Qt SDK for Windows [ieatbinary].
C++ (Qt)
void TextFinder::on_findButton_clicked()
{
if (!QSqlDatabase::drivers().contains("QMYSQL"))
QMessageBox::critical(0, "Unable to load database", "This program needs the MySQL driver");
QCoreApplication::addLibraryPath(QString("%1/%2")
.arg(qApp->applicationDirPath())
.arg("plugins"));
bool ok = db.open();
if (ok)
{
QSqlQuery query;
query.exec("SELECT id FROM consdoc");
if(query.isActive()) {
QMessageBox::information(0,"Good Query", "Good Query. It\'s active");
while(query.next())
{
ui->textEdit->append(query.value(0).toString());
}
} else {
QMessageBox::warning(0, "Bad Query", QString("Bad Query, It\'s inactive: %1").arg(query.lastError().text()));
}
while (query.next())
{
QString sID = query.value(0).toString();
ui->textEdit->append(sID);
}
}
else
{
QString err = db.lastError().text();
ui->textEdit->append(err);
}
}
До сборки драйвера переменная
ok из строчки
bool ok = db.open();имела значение
false.
После сборки она стала
true и демо-проект
sqlbrowser тоже
стал отображать в выпадающем списке
MySQL-драйвер.
Тем не менее, моя программа выдаёт:
Bad Query, It's inactive: Driver not loaded Driver not loadedСодержимое файла
TextFinder.pro:
INI
QT += core gui
QT += sql
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = TextFinder
TEMPLATE = app
SOURCES += main.cpp\
textfinder.cpp
HEADERS += textfinder.h
FORMS += textfinder.ui
RESOURCES += \
TextFinder.qrc
MySQL 5.5.29 / QtCreator 2.6.2 / Windows 7 SP1 64-bit