Russian Qt Forum
Июня 19, 2025, 01:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: qt driver not loaded  (Прочитано 13875 раз)
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.435 секунд. Запросов: 23.