Russian Qt Forum
Ноябрь 23, 2024, 08:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: qt driver not loaded  (Прочитано 13218 раз)
codenameRazuka
Гость
« : Октябрь 25, 2015, 14:48 »

Здравствуйте. Понимаю, что данная проблема обсуждалась несколько раз, но всё же, не могли бы вы дать пошаговые инструкции как начать работу с базами данных в QT? Интересует взаимодействие с СУБД MySQL.

ОС Windows (7 x64 bit), Qt версии 5.5 (устанавливал через инсталлятор). Использую IDE Qt Creator.

Мои действия:
1. Создаю консольное приложение
2. В .pro файл дописываю QT += sql
3. В main.cpp пишу:

Код:
#include <QCoreApplication>
#include <QApplication>
#include <QtSql>
#include <QtWidgets>
#include <QtGui>
#include <QSqlDatabase>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
       db.setHostName("localhost");
       db.setDatabaseName("mydb");
       db.setUserName("root");
       db.setPassword("123asd");
       bool ok = db.open();

    return a.exec();
}

При запуске, в консольном окне, получаю:

QMySQL driver not loaded
available drivers: QSQLITE QMYSQL QMYSQL QMUSQL3 QOBDC QPSQL QPSQL7

Примеры из /Examples/sql также не работают. Сама MySQL установлена. Файл libmysql.dll (а так же libmysql.lib) в папку с exe файлом программы кидал -- не помогает.

Пробовал собирать драйвер по инструкциям в документации (вот как тут: http://doc.qt.io/qt-4.8/sql-driver.html), но и так не получается: выводит, что не может найти файл mysql.pro -- я как понял, это потому, что я собирал Qt не из исходных файлов.

Так всё же, какие есть способы заставить Qt работать c MySQL и как обойти ту самую "driver not loaded"?

И ещё вопрос (глупый, возможно) -- есть ли возможность заставить Qt работать с уже созданной БД, например, через скрипт MySQL? Какие (условно говоря) инструменты и механизмы для этого следует использовать?
« Последнее редактирование: Октябрь 25, 2015, 15:08 от codenameRazuka » Записан
Bepec
Гость
« Ответ #1 : Октябрь 25, 2015, 17:10 »

1) собрать драйвер с исходников.
2) скопировать в папку plugins (ну или по идее он сам скопирует)
3) пользоваться.
« Последнее редактирование: Октябрь 25, 2015, 20:19 от Bepec » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #2 : Октябрь 25, 2015, 17:57 »

1) собрать драйвер с исходников.
2) скопировать в папку plugins (ну или по идее он сам скопирует)
3) пользоваться.
А разве драйвер не собран? Вон он в выводе фигурирует.

codenameRazuka вам нужны клиентские библиотеки MySQL. Загрузите их с сайта mysql. Обратите внимание на битность библиотек (32/64 бита) и выберите те, которые соответствуют битности вашей венды.
Записан
codenameRazuka
Гость
« Ответ #3 : Октябрь 25, 2015, 18:33 »

Что-то не пойму, что значит "клиентская библиотека"? Имеется в виду Connector C++(Connector C и др)?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #4 : Октябрь 25, 2015, 19:34 »

Что-то не пойму, что значит "клиентская библиотека"? Имеется в виду Connector C++(Connector C и др)?
Попробуйте поставеть это http://dev.mysql.com/downloads/installer/, думаю там все будет. И dll-библиотеки mysql должны быть доступны по стандартным путям.
Записан
Bepec
Гость
« Ответ #5 : Октябрь 25, 2015, 20:20 »

Ошибся, не углядел версию куте.
Записан
codenameRazuka
Гость
« Ответ #6 : Октябрь 25, 2015, 20:50 »

Переустановил Qt, пытаюсь собрать драйвер. Но теперь другая проблема:



В чём может быть проблема? Сначала ругался на отсутствие mysql.h, ну я и перетащил папку MySQL Server 5.7 в корень и изменил имя на более короткое MySQL.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #7 : Октябрь 25, 2015, 20:57 »

Не надо ничего пересобирать. Драйверу qmysql требуются dll-библиотеки самого mysql. Как только он сможет их загрузить, он будет работать.
Записан
codenameRazuka
Гость
« Ответ #8 : Октябрь 25, 2015, 21:01 »

В таком случае, что мне следует сделать для того, чтобы он смог эти файлы загрузить? Может, нужно что-то в файле .pro проекта указать (нигде об этом не написано)?
« Последнее редактирование: Октябрь 25, 2015, 21:07 от codenameRazuka » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #9 : Октябрь 25, 2015, 21:10 »

Найдите библиотеку libmysql.dll и положите в любую директорию прописанную в %PATH% или рядом с экзешником.
Записан
codenameRazuka
Гость
« Ответ #10 : Октябрь 25, 2015, 21:14 »

Да я вроде так и так делал, эффекта нету. Есть ещё идеи?
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #11 : Октябрь 25, 2015, 21:21 »

Да я вроде так и так делал, эффекта нету. Есть ещё идеи?
Битность библиотек mysql равна битности венды?
Есть для венды свободная программа показывающая, зависимые библиотеки для указанного бинарник, название не помню, но на форуме она периодически упоминается. Посмотрите ей, чего не хватает драйверу qmysql.dll.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #12 : Октябрь 25, 2015, 21:24 »

Вот. http://www.dependencywalker.com/
Записан
codenameRazuka
Гость
« Ответ #13 : Октябрь 25, 2015, 21:30 »

Хм, а где мне следует искать этот самый qmysql.dll? Что-то в поиске проводник не находит...
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #14 : Октябрь 25, 2015, 21:31 »

Хм, а где мне следует искать этот самый qmysql.dll? Что-то в поиске проводник не находит...
А куда вы mysql устанавливали?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.049 секунд. Запросов: 23.