Перечитал и пересмотрел кучу материала по поводу подключения к
MySQL из
Qt. Версия
MySQL -
5.5,
Qt -
5.9.1, компилятор
mingw53_32, система -
Win10x64.
В
C:\Qt\Qt5.9.1\5.9.1\mingw53_32\plugins\sqldrivers уже лежат
qsqlmysql.dll и
qsqlmysqld.dll, следовательно компилить их из исходников, смысла нет, ведь так?
Если да, то почему выскакивает пресловутый:
("C:/Qt/Qt5.9.1/5.9.1/mingw53_32/plugins", "D:/CPP/Qt/build-BlackWoodWhip-Desktop_Qt_5_9_1_MinGW_32bit-Debug/debug")
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
Error
При этом
libmysql.dll и
libmysql.lib из
C:\Program Files\MySQL\MySQL Server 5.5\lib скопировал куда только можно и нельзя (папка проекта, папка с экзешником debug-версии, Windows, папка
C:\Qt\Qt5.9.1\5.9.1\mingw53_32\plugins\sqldrivers), файлы
qsqlmysql.dll и
qsqlmysqld.dll, так же распихал повсюду. Вот мой
PATH:
PATH
C:\Program Files\ImageMagick-7.0.6-Q16;D:\Python27\;
D:\Python27\Scripts;C:\ProgramData\Oracle\Java\javapath;
C:\Windows\system32;
C:\Windows;
C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\PROGRA~2\NVIDIA~1\PhysX\Common;
D:\Programs\Git\cmd;
D:\Python27\Lib\site-packages;
D:\Python27\Lib\site-packages\PyQt5;
D:\Python27\include;
D:\Python27\libs;
D:\Programs\TortoiseSVN\bin;
D:\Go\bin;D:\Programs\nodejs\;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
C:\Program Files (x86)\Pico Technology\PicoScope6\
;C:\Program Files (x86)\Xoreax\IncrediBuild;
C:\Qt\Qt5.9.1\5.9.1\msvc2015\bin;
C:\PROGRA~2\MICROS~2.0\VC\bin;
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools;
C:\Program Files (x86)\Windows Kits\10\Lib\10.0.15063.0\um\x86;
C:\Qt\Qt5.9.1\5.9.1\mingw53_32\plugins\sqldrivers;
C:\Program Files\MySQL\MySQL Server 5.5\lib;
C:\Program Files\MySQL\MySQL Server 5.5\bin;
Вот
PATH из
QtCreator Build Environment:
PATH Build Environment
C:\Qt\Qt5.9.1\5.9.1\mingw53_32\bin;
C:\Qt\Qt5.9.1\Tools\mingw530_32\bin;
C:\Qt\Qt5.9.1\5.9.1\mingw53_32\plugins\sqldrivers;
C:\Program Files\MySQL\MySQL Server 5.5\lib;
C:\Program Files\MySQL\MySQL Server 5.5\bin;
Вот
.pro файл:
.proQT += core gui sql
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = BlackWoodWhip
TEMPLATE = app
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
RESOURCES += \
icons/IcoAll.qrc \
icons/gui.qrc
CONFIG (debug, debug|release) {
CONFIG += console
}
Вот
main.cpp ,
mainwindow.h и
mainwindow.cppmain.cpp#include "mainwindow.h"
#include <QApplication>
#include <QStyleFactory>
int main(int argc, char *argv[])
{
QStringList paths = QCoreApplication::libraryPaths();
paths.append(".");
paths.append("imageformats");
paths.append("platforms");
paths.append("sqldrivers");
QCoreApplication::setLibraryPaths(paths);
QApplication::setOrganizationName( "FILTR-KTV" );
QApplication::setOrganizationDomain( "filter-tv.ru" );
QApplication::setApplicationName( "BlackWoodWhip" );
QApplication a(argc, argv);
QApplication::setStyle (QStyleFactory::create ("Fusion"));
MainWindow w;
w.show();
return a.exec();
}
mainwindow.h#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlTableModel>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
QSqlDatabase db;
};
#endif // MAINWINDOW_H
mainwindow.cpp#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
#include <QtSql>
#include <QSqlError>
#include <QSqlRecord>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
qDebug() << QApplication::libraryPaths();
//DATABASE MySQL
db = QSqlDatabase::addDatabase("QMYSQL", "BWW");
db.setHostName("127.0.0.1");
db.setDatabaseName("blackwoodwhip");
db.setUserName("root");
db.setPassword("root");
if (!db.open()){
qDebug() << "Error";
} else {
qDebug() << "Ok";
}
}
MainWindow::~MainWindow()
{
delete ui;
}
Теперь, внимание вопрос, как быть в такой ситуации?
Я пробовал заново скомпилить из исходников
.dll'ки, но напоролся на какие-то ошибки (кажется жаловался, что не значет, что такое
mysql.