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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: очередное Driver not loaded  (Прочитано 9761 раз)
Ayanami_Rey
Гость
« : Январь 05, 2011, 22:18 »

прочитал все что тут было по данной тематике но мою проблему не решило.
проект на Qt 4.7.0 + mingw под винХП

собираю mysql по такой технологии:
cd C:\MySQL\include
dlltool -d libmysql.def -D libmysql.dll -l libmysql.a -k
cd C:\Qt\qt\src\plugins\sqldrivers\mysql
qmake -o Makefile "INCLUDEPATH+=C:\MySQL\include" "LIBS+=C:\MySQL\lib\opt\libmysql.lib" mysql.pro
mingw32-make

добавляю в pro файл
QT += core gui sql
CONFIG += release

в main файле пишу

    QApplication a(argc, argv);
    a.setLibraryPaths(QStringList()<<QDir(a.applicationDirPath()+"//plugins//").absolutePath());
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    if (!db.open())
    {
     ...
    }

плагин к mysql лежит в <папка экзешника>/plugins/sqldrivers/qsqlmysql4.dll
libmysql лежит возле ехешника

ну и как понимаете появляется всеми любимая ошибка Driver not loaded
смотрел в реестре ветку HKEY_CURRENT_USER\Software\Trolltech. при нормальном соединении с плагинами должно появлятся 2 записи:
OrganizationDefaults\Qt Factory Cache 4.7 и
OrganizationDefaults\Qt Plugin Cache 4.7.false с путями к плагину, у меня же создается только Qt Plugin Cache 4.7.false.

причем если докинуть, например, одбц плагин, то одбц подключается отлично и в реестре все нормально пишется, хоть на моей машине, хоть на какой, а вот именно мускул работать не хочет Грустный

пробовал различные вариации на тем:
 a.setLibraryPaths(QString("./plugins/")) как с полными путями так и без...
результат такой же.
смотрел с помощью depends
никуда кроме указанных путей программа не лезет, во время выполнения пишет
Код:
Loaded "QSQLMYSQL4.DLL" at address 0x6C8C0000.  Successfully hooked module.
Loaded "LIBMYSQL.DLL" at address 0x10000000.  Successfully hooked module.
Loaded "WSOCK32.DLL" at address 0x71AB0000.  Successfully hooked module.
DllMain(0x71AB0000, DLL_PROCESS_ATTACH, 0x00000000) in "WSOCK32.DLL" called.
DllMain(0x71AB0000, DLL_PROCESS_ATTACH, 0x00000000) in "WSOCK32.DLL" returned 1 (0x1).
DllMain(0x10000000, DLL_PROCESS_ATTACH, 0x00000000) in "LIBMYSQL.DLL" called.
GetProcAddress(0x7C800000 [KERNEL32.DLL], "InitializeCriticalSectionAndSpinCount") called from "LIBMYSQL.DLL" at address 0x1006839F and returned 0x7C80B8B9.
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsAlloc") called from "LIBMYSQL.DLL" at address 0x100660E5 and returned NULL. Error:     (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsGetValue") called from "LIBMYSQL.DLL" at address 0x100660F2 and returned NULL. Error:     (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsSetValue") called from "LIBMYSQL.DLL" at address 0x100660FF and returned NULL. Error:     (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "FlsFree") called from "LIBMYSQL.DLL" at address 0x1006610C and returned NULL. Error:     (127).
GetProcAddress(0x7C800000 [KERNEL32.DLL], "IsProcessorFeaturePresent") called from "LIBMYSQL.DLL" at address 0x10067644 and returned 0x7C80AEBA.
DllMain(0x71AB0000, DLL_PROCESS_DETACH, 0x00000000) in "WSOCK32.DLL" called.
DllMain(0x71AB0000, DLL_PROCESS_DETACH, 0x00000000) in "WSOCK32.DLL" returned 1 (0x1).
Unloaded "QSQLMYSQL4.DLL" at address 0x6C8C0000.
Unloaded "LIBMYSQL.DLL" at address 0x10000000.
Unloaded "WSOCK32.DLL" at address 0x71AB0000.
LoadLibraryW("H:\qt\plugins\sqldrivers\qsqlmysql4.dll") returned NULL. Error:       (998).
QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QODBC3 QODBC



« Последнее редактирование: Январь 05, 2011, 22:36 от Ayanami_Rey » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Январь 05, 2011, 23:08 »

Посмотри зависимости qsqlmysql4.dll
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
CuteBunny
Гость
« Ответ #2 : Январь 06, 2011, 09:09 »

Запускали тулзу со списком установленных драйверов?

Просто я после того, как собираю драйвер для мускуля, обязательно запускаю эту тулзу, чтобы удостовериться лишний раз, что все ок.
Записан
Ayanami_Rey
Гость
« Ответ #3 : Январь 06, 2011, 09:56 »

qsqlmysql4.dll собирается без левых зависимостей. Проверял.
Записан
fuCtor
Гость
« Ответ #4 : Январь 06, 2011, 17:05 »

В поле видимости должен быть файл libmysql.dll (положите его сразу в %QTDIR%/bin)
Уже наступал ни раз на эти грабли
Записан
Ayanami_Rey
Гость
« Ответ #5 : Январь 06, 2011, 17:17 »

дык проблема то на чистой машине. нету там и в помине %QTDIR%/bin.
на моей машине все идет нормально.
Записан
fuCtor
Гость
« Ответ #6 : Январь 06, 2011, 19:34 »

значит рядом с exe файлом кинуть, главное чтоб по стандартным путям (переменная PATH + рабочая папка) этот файл можно было найти.
Записан
Ayanami_Rey
Гость
« Ответ #7 : Январь 06, 2011, 20:02 »

да лежит эта дллка возле ехешника. пробовал и в систем32 запихивать. толку 0
Записан
fuCtor
Гость
« Ответ #8 : Январь 06, 2011, 20:09 »

может какие-нибудь особенности вызванные линковкой с libmysql.lib при сборке плагина и mingw.

Тут уже даж и нет больше вариантов, т.к. собираю студией и проблем не было никаких.
Записан
Ayanami_Rey
Гость
« Ответ #9 : Январь 06, 2011, 20:35 »

на счет того что криво собирается мускул плагин я тоже думал, но ведь делаю как написано в мануале, а не просто так...
мб ключ сборки не соответствует ключу моего приложения?
тогда как это посмотреть?
Записан
ASeN
Гость
« Ответ #10 : Январь 08, 2011, 15:11 »

Попробуй так: <папка экзешника>/sqldrivers/qsqlmysql4.dll
Записан
Ayanami_Rey
Гость
« Ответ #11 : Январь 09, 2011, 20:23 »

пробовал. та-же херня.
Записан
Ayanami_Rey
Гость
« Ответ #12 : Январь 10, 2011, 11:20 »

Всем спасибо!
Проблема была в кривой библиотеке libmysql.dll
Записан
vvvxmag
Гость
« Ответ #13 : Февраль 04, 2011, 21:45 »

У меня также вопрос по поводу driver not loaded, но ситуация другая.

Есть база MS Access используется только на чтение (по крайней мере я обращаюсь только с SELECT)

Программа и база записаны на CD-R при запуске, выдается сообщение driver not loaded.
Если скопировать содержимое диска на винт и запустить, то все в порядке.

Ума не приложу почему возникает данная ошибка.
Записан
vvvxmag
Гость
« Ответ #14 : Февраль 05, 2011, 22:23 »

Нашел причину возникновения ошибки.

Она возникает из-за того, что при открытии базы создается файл *.ldb
А создать его на CD-R невозможно.

Как открыть базу MS Access таким образом, чтобы не создавался файл *.ldb ?
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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