Название: mysql driver not loaded Отправлено: Alexey1st от Март 09, 2009, 23:49 Только начал разбираться с QT. Почему-то в демке все работает. Указываю драйвер QMYSQL, хост, имя, пароль и т.д. Все запускается.
Когда же создаю свой пример: Код
пишет "driver not loaded". В списке драйверов только QSQLITE Название: Re: mysql driver not loaded Отправлено: ритт от Март 09, 2009, 23:52 пользуй поиск по форуму. название треда замечательно подойдёт в качестве ключевой фразы для запроса...
Название: Re: mysql driver not loaded Отправлено: 4ybaka от Март 25, 2009, 19:44 ОТВЕТ::::::::::
Для работы с базами данных в QT используется одни и теже классы для всех баз данных. Уловка в том, что для того чтобы QT узнала с какой же библиотекой она работает, необходимо загрузить так называемый "драйвер базы даных". Для этих целей служит эта строка: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); Где "QMYSQL" - это имя собственное драйвера базы данных "MySQL". ----------------- Дело в том что данный драйвер не поставляется почти во всех версиях и сборках библиотеки QT. Для того, чтобы все-таки использовать его в своих программах, необходимо его собрать самому используя при этом пару фалов заготовленных QT-шниками как раз для сборки этого драйвера. ----------------- Для этого необходимо: [пример для WinXp. Для остального делается аналогично!] 1) Библиотека QT [со всеми потрохами, mingw например] 2) MinGW утилиты [их нет в стандартной поставке mingw входящего в QT] 3) Терпение Вот копия статьи из "ru.wikibooks.org" с поими комментариями: ====================== Последние версии MySQL официально не поддерживают сборку под MinGW и соответственно нужной вам библиотеки, в соответствующем формате в поставке нет. Придется сделать ее самому. Примерно так: 1) Переходим в каталог с библиотеками MySQL: # cd <путь_к_установленному_mysql>\lib\opt 2) Создадим файл DEF: # reimp -d libmysql.lib *Прим: reimp идет вместе с утилитами MinGW и msys. [[[[[[[[[[[[[[[[[[[[[[[[[[[[[ 4ybaka word:::::::: Я скачал утилиты с "opensource.org" и просто вытянул оттуда "reimp.exe" и поместил его в папку с "mingw32-make.exe". Также необходимо ЛИБО полностью прописывать адрес ехе-шника "reimp.exe" при его запуске, если папка фала mingw32-make.exe (т.е. например "J:\Qt\2009.01\mingw\bin\") (но при этом херово работат, если например запускается цепочка файлов, которые запускают друг друга по имени, а не полному адресу, так как думают, что адреса к ним прописаны в переменной среды. В таком случае нифига не работает!], ЛИБО прописать папку ехе-шников mingw в переменную среды ]]]]]]]]]]]]]]]]]]]]]]]]]]]] 3) Создаем библиотеку импорта MinGW: # dlltool -k --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a В этот момент создается MinGW-совместимая библиотека libmysql.a 4) Переходим в каталог с исходными файлами плагина Qt MySQL: # cd <каталог_инсталляции_qt>\src\plugins\sqldrivers\mysql 5) Запускаем qmake для генерирования Makefile # qmake -o Makefile "INCLUDEPATH+=<каталог_инсталляции_mysql>\include" "LIBS+=-L<каталог_инсталляции_mysql>\lib\opt -lmysql" mysql.pro [[[[[[[[[[[[[[[[[[[[[[[[[[[[[ 4ybaka word:::::::: Я тут помоему писал точное название библиотеки, которую получил в 3)-м пункте, и без параметра "-L" ("C:\Mysql" -- Это каталог инсталяции Mysql. Я просто запихнул туда mysql установившийся в папку по умолчанию) # qmake -o Makefile "INCLUDEPATH+=C:\Mysql\include" "LIBS+=C:\Mysql\lib\opt\libmysql.a" mysql.pro ]]]]]]]]]]]]]]]]]]]]]]]]]]]] 6) Собираем плагин # make 7) Убеждаемся, что libmysql.dll доступен через path. В случае отсутствия libmysql.dll приложение не сможет загрузить плагин и выдаст сообщение что нужного плагина нет. При этом в кэш плагинов - в моём случае - [HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.2.false] будет записана неверная информация. 8) Если произошла такая неприятность, чистим кэш плагинов - это можно сделать удалив из реестра ветку [HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults] PS: Это было опробовано для MySQL 4.1 (4.1.12a) и OpenSource Win32 Qt4. [[[[[[[[[[[[[[ 4ybaka word::::::::::: Скомпилинное приложение, использующее QMYSQL драйвер для работы с базой данных MySQL, будет требовать для запуска библиотеку "libmysql.dll", которая устанавливается в папку "<каталог установки mysql>\lib\opt\", при установке mysql (под винду). Для того чтобы "дать" приложению эту библиотеку, необходимо чтоб адрес к ней был прописан в переменной среды ("path" для винды). Также можно положить ее в папку с запускаемым файлом приложения. ]]]]]]]]]]]]]] =================================== Ссылка на эту статью: http://ru.wikibooks.org/wiki/Qt4_ЧАВО (http://ru.wikibooks.org/wiki/Qt4_ЧАВО) А здесь оригинал на английском: http://www.qtforum.org/thread.php?postid=52360#post52360 (http://www.qtforum.org/thread.php?postid=52360#post52360) Название: Re: mysql driver not loaded Отправлено: spirit от Март 25, 2009, 19:56 ссылка (http://www.qtforum.org/thread.php?postid=52360#post52360) битая.
Название: Re: mysql driver not loaded Отправлено: Magvaj от Март 26, 2009, 12:57 без ссылки на форум- здесь указана информация по сборке довольно развёрнуто. По ней всё собрал без проблем.
Предлагаю облагородить описание и поместить в FAQ. Название: Re: mysql driver not loaded Отправлено: pastor от Март 26, 2009, 13:07 Есть вики, облагораживай, выкладывай. Если что - подправлю.
Название: Re: mysql driver not loaded Отправлено: Magvaj от Март 26, 2009, 14:38 Есть вики, облагораживай, выкладывай. Если что - подправлю. хорошо... сдам проект займусь... заодно парочку своих наработок выложу ;-) Название: Re: mysql driver not loaded Отправлено: pastor от Март 26, 2009, 15:05 хорошо... сдам проект займусь... заодно парочку своих наработок выложу ;-) отлично! Все будут признательны :) Название: Re: mysql driver not loaded Отправлено: ONIKSfly от Апрель 06, 2009, 10:29 Цитировать 6) Собираем плагин # make На этом шаге, если просто так выполнить мэйк, то строка вернет: Код: MAKE Version 5.2 Copyright (c) 1987, 2000 Borland Если выполнить команду, указав путь mingw32-make.exe, например: Цитировать # F:\mingw\bin\mingw32-make.exe То возвращает такую штуку: Код: F:/mingw/bin/mingw32-make -f Makefile.Debug all Не посоветуете новичку чего? Название: Re: mysql driver not loaded Отправлено: alex12 от Апрель 06, 2009, 16:28 Я абсолютно замучился со сборкой плагинов под разные платформы с разными ОС. Поэтому сделал просто: поместил код плагина к себе в проект (проект под лицнзинй GPL) :)
В main.cpp Код: Q_IMPORT_PLUGIN( qsqlmysql ) В .pro Код: win32{ В прикрепленном к посту файле - исходники адаптированного плагина. Работает железно. Никаких проблем с подключением к БД! Название: Re: mysql driver not loaded Отправлено: ONIKSfly от Апрель 06, 2009, 18:48 В прикрепленном к посту файле - исходники адаптированного плагина. А если несложно, можно новичку поподробнее?Работает железно. Никаких проблем с подключением к БД! Вот файл main.cpp: Код: #include <QtGui> А вот файл проекта: Код: QT += sql При попытки компиляции выдает ошибку Цитировать main.cpp:7: error: `class QSqlDatabase::addDatabase' is not a type В чем я накосячил? Название: Re: mysql driver not loaded Отправлено: alex12 от Апрель 06, 2009, 19:22 может нету:
Код: #include <QtSql> Название: Re: mysql driver not loaded Отправлено: ONIKSfly от Апрель 06, 2009, 20:06 Все равно, ошибка остается. сами файлики положил в директорию проекта. Использую для компилирования Qt Creator V1.0.0 (NOKIA)
Название: Re: mysql driver not loaded Отправлено: alex12 от Апрель 06, 2009, 20:53 Попробуй так:
Код: #include <QtGui> Название: Re: mysql driver not loaded Отправлено: ONIKSfly от Апрель 07, 2009, 18:34 Там только наверно
Код Теперь вот как происходит. Если выполнять вот такую программу (без указателя), то вылазит туча ошибок(171 и 82 предупреждения), как понимаю все это вызвано вот этим: Код: mysql_plugin.h:61: mysql.h: No such file or directory (http://img2.pict.com/b6/d5/32/8e1f0190bdf1aa189b2b339926/WcASg/300/screen1.jpg) (http://img2.pict.com/b6/d5/32/8e1f0190bdf1aa189b2b339926/WcASg/screen1.jpg) А если использовать указатель, т.е.: Код Ошибок будет меньше: (http://img2.pict.com/dc/1b/1c/11a64b9fef3abf25ac3cf0cac6/O1L4Q/300/screen2.jpg) (http://img2.pict.com/dc/1b/1c/11a64b9fef3abf25ac3cf0cac6/O1L4Q/screen2.jpg) Название: Re: mysql driver not loaded Отправлено: alex12 от Апрель 07, 2009, 21:27 Эти два скриншота - две совершенно независимые проблемы.
Немного теории Сборка любого проекта на языке C++ происходит в два этапа: - компиляция cpp файлов в объектные файлы (расширение .o) - сборка из объектных файлов исполняемого файла. Первый пункт делается последовательно и независимо для каждого cpp файла. Количество ворнингов и ошибок зависит от конкретного файла, при компиляции которого они возникают. QtCreator, судя по скриншотам, не показывает сам ход процесса сборки. Поэтому не видно, при компиляции какого cpp-файла возникли ошибки. Вот, как я вижу, что происходит на самом деле: Последовательность сборки файлов: main.cpp, mysql_plugin.cpp Верхний скриншот: main.cpp собрался без ошибок и система приступила к сборке mysql_plugin.cpp. При его компиляции не был найден заголовочный файл mysql.h. Это спровоцировало кучу ошибок. Нижний скриншот: Уже на этапе компиляции main.cpp возникли ошибки. До mysql_plugin.cpp дело даже не дошло. Вывод: Правильный верхний вариант. Нужно только починить отсутствие mysql.h Как вылечить mysql.h Я для себя решил это самым простым способом (использую компилятор MinGW). Я скопировал заголовочные файлы от MySQL в каталог include компилятора MinGW, а библиотеки в каталог lib компилятора MinGW. Архивчик с заголовочными файлами и библиотеками MySQL брать здесь: http://transmeta.inkommet.ru/pub/mysql.zip (http://transmeta.inkommet.ru/pub/mysql.zip). Общие рекомендации Имеет смысл смотреть только на первую ошибку. Остальные, обычно, следствие первой. Общее количество ворнингов и ошибок не информативно вообще. Я очень рекомендую сначала попробовать разобраться с механикой сборки проекта. Работать не со студией, а из командной строки. Поставить FAR и попробовать руками собрать проект. Руками установить пути к компилятору и Qt. Затем набрать сначала qmake, а потом make. Можно одновременно работать и со студией и FAR'ом. Еще стоит посмотреть файл из Qt примеров, как они делают подключение к БД. Файл QTDIR/examples/sql/connection.h. Там написано так: Код: ... Название: Re: mysql driver not loaded Отправлено: kobra от Сентябрь 28, 2010, 01:11 5) Запускаем qmake для генерирования Makefile Все сделал как написали но после 6 пункта возникает проблема. Нигде на компютере нет libmysql.dll. Есть qsqlmysql4.dll в папке qt/plugins/sqldrivers но больше ничего. В path ничего не прописалось и программа не работает(нету драйвера). Где может бить ошибка?# qmake -o Makefile "INCLUDEPATH+=<каталог_инсталляции_mysql>\include" "LIBS+=-L<каталог_инсталляции_mysql>\lib\opt -lmysql" mysql.pro [[[[[[[[[[[[[[[[[[[[[[[[[[[[[ 4ybaka word:::::::: Я тут помоему писал точное название библиотеки, которую получил в 3)-м пункте, и без параметра "-L" ("C:\Mysql" -- Это каталог инсталяции Mysql. Я просто запихнул туда mysql установившийся в папку по умолчанию) # qmake -o Makefile "INCLUDEPATH+=C:\Mysql\include" "LIBS+=C:\Mysql\lib\opt\libmysql.a" mysql.pro ]]]]]]]]]]]]]]]]]]]]]]]]]]]] 6) Собираем плагин # make 7) Убеждаемся, что libmysql.dll доступен через path. В случае отсутствия libmysql.dll приложение не сможет загрузить плагин и выдаст сообщение что нужного плагина нет. При этом в кэш плагинов - в моём случае - [HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.2.false] будет записана неверная информация. 8) Если произошла такая неприятность, чистим кэш плагинов - это можно сделать удалив из реестра ветку [HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults] PS: Это было опробовано для MySQL 4.1 (4.1.12a) и OpenSource Win32 Qt4. [[[[[[[[[[[[[[ 4ybaka word::::::::::: Скомпилинное приложение, использующее QMYSQL драйвер для работы с базой данных MySQL, будет требовать для запуска библиотеку "libmysql.dll", которая устанавливается в папку "<каталог установки mysql>\lib\opt\", при установке mysql (под винду). Для того чтобы "дать" приложению эту библиотеку, необходимо чтоб адрес к ней был прописан в переменной среды ("path" для винды). Также можно положить ее в папку с запускаемым файлом приложения. ]]]]]]]]]]]]]] Название: Re: mysql driver not loaded Отправлено: NicK от Сентябрь 28, 2010, 09:45 Для компиляции драйвера MySQL в Qt4 под Windows все, что нужно вам сделать, это:
скачав исходники mySQL, выполнить следующие команды: Код
Код
Код
Код
Код
Все. Название: Re: mysql driver not loaded Отправлено: Lostinnet от Сентябрь 30, 2010, 11:34 Прошу прощения, у меня проблемка немножко другая, но решил написать сюда.
На компьютере где разрабатываю программу все замечательно работает и файл с драйвером qsqlite4.dll з амечательно находится и грузится. При запуске на другой машине ничего не работает, драйвер не находится. в программе добавлены пути к драйверу QCoreApplication::addLibraryPath ( QCoreApplication::applicationDirPath() ); файл даже вроде находится, но не загружается... В чем может быть проблема? Название: Re: mysql driver not loaded Отправлено: Пантер от Сентябрь 30, 2010, 15:33 Lostinnet, иди в поиск по фразе driver not loaded. Данный вопрос поднимается по несколько раз в месяц.
Название: Re: mysql driver not loaded Отправлено: Astrologer от Сентябрь 30, 2010, 17:05 Alex12 - ссылка битая! Перезалейте пожалуйста.
Название: Re: mysql driver not loaded Отправлено: kobra от Октябрь 07, 2010, 20:22 Для компиляции драйвера MySQL в Qt4 под Windows все, что нужно вам сделать, это: скачав исходники mySQL, выполнить следующие команды: Код
Код
Код
Код
Код
Все. итак переустановил Qt, MinGW, MySQL. Прописал в Path пути C:\MinGW\bin;C:\Qt\2010.05\qt\bin;c:\MySQL\bin Сделал все как написали(прикрепил файл из командной строки). Перезапустил комп на всякий случай. В папке c:\qt\2010.05\qt\plugins\sqldrivers появились: qsqlmysql4.dll qsqlmysqld4.dll Запускаю Qt Creator проект где у меня используеться подключения к базе. В итоге получаю очень странное сообщения: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QMYSQL3 QMYSQL QODBC3 QODBC Кажеться 2 строчки несовместніе. Но что странное exe программа работает нормально(тойсть подключаеться к базе) правда только на моем компе. Так вот что я не так сделал? Название: Re: mysql driver not loaded Отправлено: kobra от Октябрь 08, 2010, 23:16 снова все переустановил но использовал уже тот MinGW что входит в Qt. Повторил все шаги, закинул libMySQL.dll в qt/bin и тогда в qt Creator все заработало.
Чтоб заставить приложения работать на других компах использовал пост: http://www.prog.org.ru/index.php?topic=11804.msg76357#msg76357 и закинул в корень с приложениям libMySQL.dll. Название: Re: mysql driver not loaded Отправлено: Ojigrande от Февраль 11, 2011, 12:35 У меня следующая проблема:
Когда вызываю mingw32-make он мне ругается следующим ../../../sql/drivers/mysql/qsql_mysql.cpp:596: error: 'class QString' has no member named 'toInt' ../../../sql/drivers/mysql/qsql_mysql.cpp:604: error: 'class QString' has no member named 'toInt' Название: Re: mysql driver not loaded Отправлено: DenisKh001 от Февраль 18, 2011, 06:26 Эти два скриншота - две совершенно независимые проблемы.
Немного теории Сборка любого проекта на языке C++ происходит в два этапа: - компиляция cpp файлов в объектные файлы (расширение .o) - сборка из объектных файлов исполняемого файла... Пробую пойти по этому пути, но жалуется на отсутствие mysql_version.h, mysql_com.h, mysql_time.h, my_list.h и кучи других файлов. Где их взять? Название: Re: mysql driver not loaded Отправлено: Пантер от Февраль 18, 2011, 08:27 Скачать.
Название: Re: mysql driver not loaded Отправлено: DenisKh001 от Февраль 19, 2011, 19:46 Проблему решил только в winXP. Следуй вот этой инструкции http://www.pikopong.com/blog/2010/04/11/how-to-enable-mysql-support-in-qt-sdk-for-windows/. В win7 пока не получается, возможно проблема из-за того, что установил mySQL 64х, чего точно не стоило делать, а корректно удалить не получается.
Название: Re: mysql driver not loaded Отправлено: Karl-Philipp от Февраль 19, 2011, 22:16 Проблему решил только в winXP. Следуй вот этой инструкции http://www.pikopong.com/blog/2010/04/11/how-to-enable-mysql-support-in-qt-sdk-for-windows/. В win7 пока не получается, возможно проблема из-за того, что установил mySQL 64х, чего точно не стоило делать, а корректно удалить не получается. На счет удаления корректного:После удаления MySQL из программ, нужно удалить его в реестре. 1. Убедись, что Mysql не запущен как сервис. 2. с помощью regedit заходи в LOCAL MACHINE -> SOFTWARE и гроохни там все, что касается MySQL + удали все ветки, где упоминается MySQL в CURRENT USER. Мне помогало, правда не уверен, что такое удаление корректно :) Название: Re: mysql driver not loaded Отправлено: iks от Май 16, 2011, 20:39 Делал по выше описаному, но у меня выдает ошибку вот тут
Код: C:\Qt\Desktop\Qt\4.7.3\mingw\plugins\sqldrivers\mysql>mingw32-make --------------------------- Просто решил собрать программу на Win до этого на Linux вообще проблем ни каких не чувствовал =) Название: Re: mysql driver not loaded Отправлено: iks от Май 16, 2011, 22:40 Вот что значит просидеть на Linux более года, уже отвык что после каждого чиха систему надо перезагружать чтоб применить новые параметры =)))
Сейчас вроде идет сборка посмотрю как соберется. далее отпишусь. Кстати вот (http://qt.shamangrad.net/doku.php?id=%D0%B4%D1%80%D0%B0%D0%B9%D0%B2%D0%B5%D1%80%D1%8B_%D0%B1%D0%B0%D0%B7_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85_sql) статейка неплохая по этой теме --------------------------------- Нет так-же ошибка похоже придется пересобрать сам Qt Название: Re: mysql driver not loaded Отправлено: aviabunin от Август 01, 2011, 11:02 Похожая ошибка - dump во вложении.
Может кто подскажет в чем дело? Спасибо! Название: Re: mysql driver not loaded Отправлено: Пантер от Август 01, 2011, 11:06 Компилятор не находит.
Название: Re: mysql driver not loaded Отправлено: LisandreL от Август 01, 2011, 11:22 1) Слэши в параметрах в другую сторону.
2) Запускайте не просто из командной строки, а из «Qt 4.7.3 for Desktop (MinGW)» (Пуск/Все программы/Qt SDK/Desktop/Qt 4.7.3 for Desktop (MinGW)) - там уже пути прописаны. Название: Re: mysql driver not loaded Отправлено: iks от Август 01, 2011, 11:37 Недавно переустановился на винде, так поступил проще, скачал Qt SDK (http://qt.nokia.com/downloads/), а так-же mysql....msi (http://www.mysql.ru/download/) нормально без танцев поставил их, подкинул драйвер C:\Qt\bin\sqldrivers\libmysql.dll и все нормально работаю.
Может поможет. Название: Re: mysql driver not loaded Отправлено: aviabunin от Август 02, 2011, 08:04 Пробовал вчера в Qt SDK пересобрать пакет для драйвера, но так и не справился с ошибками - см во вложении. Главная проблема в пути к libmysql.lib не воспринимает пробелы - слэши менял, но не помогло ессно пока с пробелами не ясно
Название: Re: mysql driver not loaded Отправлено: iks от Август 02, 2011, 08:56 Давно говорится что ставить желательно пути без пробелов, или попробуйте путь взять в "C:\Program Files\..." может помочь. Но помойму проще будет MySQL переставить C:\MySQL, или без этих бубнов скопируйте файл libmysql.dll в C:\QtSDK\...\bin\sqldrivers, ну и последний вариант который приходит в голову это добавит в реестр
Название: Re: mysql driver not loaded Отправлено: aviabunin от Август 02, 2011, 10:30 По поводу просто прописать libmysql.lib в соответствующий каталог - сомнительно, т.к. не известно где это вылезет и когда. Насчет обратных слэшей в параметрах - согласен. Одна проблема осталась - пробелы в Program Files и MySQL\MySQL server 5.5 - победить не удается - хоть из командной строки запускай, хоть из QtSDK\Desktop(MinGw). Пока вижу один выход - переставить MySQL в C:\mysql . И ждать пока кто-нибудь просветить насчет пробелов. Надо бы найти форум разработчиков Qt . Попробую на эту тему отдельные ветки на сайтах запустить
Название: Re: mysql driver not loaded Отправлено: iks от Август 02, 2011, 11:26 Выше я не просто написал путь а взял его в "", можно попробовать "LIB += \"ваш путь\"", по поводу того что где это вылезет и когда, так по любому если вы будете распространять свою софтину, то в папку с бинарником проще подкинуть sqldrivers\libmysql.dll
Название: Re: mysql driver not loaded Отправлено: aviabunin от Август 02, 2011, 12:18 Все получилось после того как путь заключил в одинарные кавычки ' ... ' и поставил обратные слэши.
Т.е. просто открываем проект по сборке mysql (C:\QtSDK\QtSources\4.7.3\src\plugins\sqldrivers\mysq\mysql.prol) и правим пути на вкладке параметров сборки, собираем. Затем 4 файла, указанные на 2 вложении (по 2 файла из debug и release) переписываем в тот же каталог , который указан во втором вложении. Затем не забываем в файле проекта дописать QT += sql и можно пользоваться MySQL. Всем спасибо! Название: Re: mysql driver not loaded Отправлено: aviabunin от Август 07, 2011, 21:45 Но вот запустить приложение и использованием не удается. Получаю сообщение в ходе отладки -
Цитировать Запускается D:\QT\monitor-build-desktop\debug\monitor.exe... Вот текст программы main.cpp("QSQLITE", "QMYSQL3", "QMYSQL") Connected "Driver not loaded Driver not loaded" QSqlQuery::exec: database not open 0 Код: #include <QtGui/QApplication> Код: QT += core gui ("QSQLITE", "QMYSQL3", "QMYSQL") Соnnected. Чего не хватает ? Название: Re: mysql driver not loaded Отправлено: LisandreL от Август 08, 2011, 00:52 query.isActive до exec'а? :o
Попробуйте так: Цитировать #include <QtGui/QApplication> #include "mainwindow.h" #include <QtSql> #include <qsqldatabase.h> #include <QDebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; a.addLibraryPath( "./" ); QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); qDebug() << QSqlDatabase::drivers(); db.setHostName("localhost"); db.setDatabaseName("db1"); db.setUserName("root"); db.setPassword("Djkjlz1"); if (!db.open()) { qDebug() << "Error connecting"; return 1; } else { qDebug() << "Connected"; } QSqlQuery query( db ); if ( !query.exec("SELECT name FROM region") ) { qDebug()<< query.lastError().text(); return 1; } ... P.S. Ну и порт лучше поставить, даже если он дефолтный. Название: Re: mysql driver not loaded Отправлено: aviabunin от Август 08, 2011, 07:30 Спасибо, огромное! Все заработало.
1. Кроме того, что в коде прописано --- в monitor.pro: Код: QT += sql Код: #include <QtSql> А то я на всякий случай положил во многих местах. 2. Сгенерированные драйвера MySQL я разместил в каталоге C:\QtSDK\Desktop\Qt\4.7.3\mingw\plugins\sqldrivers А если приложение не desktop? а, например, приложение для Symbian - где должны быть драйвера libqsqlmysql4.a и qsqlmysql4.dll ...? Как разобраться со структурой каталогов в C:\QtSDK? Какое назначение каталогов - C:\QtSDK\mingw C:\QtSDK\Symbian? 3. Видел ссылку (к сожалению не действующую на программу, которая позволяет определить где и что ищет компоновщик , что не может найти) Цитировать Открой для себя волшебную утилиту http://www.dependencywalker.com/ Это с адреса - http://www.sql.ru/forum/actualthread.aspx?tid=745985Она точно скажет какие dll нужны и где система их сейчас видит. Но она не поможет на динамически загружаемых библиотеках (в смысле плагинах). Название: Re: mysql driver not loaded Отправлено: blakvoron от Сентябрь 08, 2011, 19:34 Народ, я начинающий программист, так что сильно не пинайте.
я подключил библиотеки: #include <QtSql/mysql.h> #include <QtSql/qsqldatabase.h> #include <qDebug> Капнул из SQL mysql.h и ещё кучу файлов, что попросил вмести с ним А дальше при каждой попытке вызова QSqlDatabase вываливается по 5 ошибок типа: undefined reference to '_imp__ZN12QSqlDatabaseC1Ev' может кто подскажет, с чем это может быть связано? Название: Re: mysql driver not loaded Отправлено: Даниил от Сентябрь 09, 2011, 08:42 В .pro файл допиши:
Код: QT += sql Название: Re: mysql driver not loaded Отправлено: blakvoron от Сентябрь 09, 2011, 20:15 Огромное спасибо...)))
Название: Re: mysql driver not loaded Отправлено: PavelVX от Октябрь 05, 2011, 10:53 Собрал драйвер для QMySQL как тут написанно, все собралось. перекинул 2*2 файлика в C:\QtSDK\Desktop\Qt\4.7.4\mingw\plugins\sqldrivers.
но в пректе поддержка mySQL не появилась :( qDebug() << QSqlDatabase::drivers(); выдает: QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC ("QSQLITE", "QODBC3", "QODBC") . Что я мог недоделать? сам спросил, сам и отвечу, случайно нагуглил ответ: в папку с приложением нужно докинуть клиентскую dll: libmysql.dll И тогда, вроде бы, начинает все работать :) Название: Re: mysql driver not loaded Отправлено: Lebets_VI от Октябрь 06, 2011, 11:32 Приветствую.
А вот у меня совсем другая проблема, при сборке лезут ошибки линковки "undefined reference " На все используемые ф-ции, например: undefined reference to `mysql_stmt_error@4' Неделю уже парюсь, что и как только не ствил. Собираю под MinGW Может найдется добрый человек и выложит дебажную и релизную длл версии 4.7.4 ? Название: Re: mysql driver not loaded Отправлено: Lebets_VI от Октябрь 06, 2011, 12:08 Тупо переименовал libmysql.lib в libmysql.a и все собралось
Название: Re: mysql driver not loaded Отправлено: Myllyenko от Март 28, 2012, 18:09 Сделал всё по инструкции с первой страницы, но библиотека всё равно не собирается (ошибки "undefined reference"). В чём может быть дело?
Название: Re: mysql driver not loaded Отправлено: Даниил от Март 28, 2012, 19:07 В .pro файл допиши: Код: QT += sql |