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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Вопрос по MySQL  (Прочитано 10746 раз)
toggetit
Гость
« : Февраль 09, 2009, 15:05 »

Доброго времени суток!

Я собрал MySQL'ный плагин для Qt 4.4.3 OpenSource. Проверяю его наличие на программе demos\sqlbrowser - но там по прежнему sqlite и odbc, мускула нет. Как заставить Qt увидеть мой плагин.
Проверил - в папке plugins\sqldrivers лежит и qsqlmysql4.dll и qsqlmysqld4.dll и те же {}.а

гуру, подскажите где что проглядел?
P.S. система Windows
Записан
spirit
Гость
« Ответ #1 : Февраль 09, 2009, 15:17 »

а путь к либам(папке bin) MySql указан?
Записан
toggetit
Гость
« Ответ #2 : Февраль 09, 2009, 15:23 »

Да, в переменных окружения windows.

Наткнулся на такое:
Необходимо сделать configure -qt-sql-mysql -plugin-sql-mysql

какие ещё варианты?
Записан
ритт
Гость
« Ответ #3 : Февраль 09, 2009, 15:26 »

все варианты - мыслимые и немыслимые - уже множество раз обсуждались в ветках по сборке/установке и скл.
неужели так сложно ткнуть в маленькую кнопочку "поиск" в верхней части шаблона?!
Записан
toggetit
Гость
« Ответ #4 : Февраль 09, 2009, 15:31 »

История стара как мир - "юзай поиск" =)

Я конечно же юзал)))
Записан
ритт
Гость
« Ответ #5 : Февраль 09, 2009, 15:45 »

ладно, ветку позже перенесу в сборку/установку.
начнём сначала: mingw/m$vc? параметры конфигурации? версия мускуля и пути к инклюдам/либам мускуля? очищался ли кэш плагинов /* в реестре */ после пересборки?
Записан
toggetit
Гость
« Ответ #6 : Февраль 09, 2009, 22:49 »

MySQL 5.0.51a (установлен вместе с с develop-частью)
MinGW
Qt 4.4.3 open source

MySQL установлен в D:\DevTools\MySQL (соответственно вся требуха с ним там же), в переменных среды windows указан путь к MySQL\bin

при сборе плагина использовал qmake "INCLUDEPATH+=...\path\to\MySQL\include" "LIBS+=...\MySQL\lib\opt\libmysql.lib"

всё собралось без сучка без задоринки

кэш плагинов не чистил - поподробней расскажите пожалуйста. Находил упоминание про чистку кеша, но не "врубился" как это делать
« Последнее редактирование: Февраль 09, 2009, 22:52 от toggetit » Записан
ритт
Гость
« Ответ #7 : Февраль 09, 2009, 23:49 »

попробуй дополнить src/plugins/sqldrivers/mysql/mysql.pro следующими строками:
Код:

INCLUDEPATH += D:/DevTools/MySQL/include
LIBS += -LD:/DevTools/MySQL/lib/opt
и пересобрать.
затем в реестре грохнуть ветку HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults
Записан
toggetit
Гость
« Ответ #8 : Февраль 10, 2009, 00:13 »

я так и собирал...

ветку удалил.

Ситуация на текущий момент неоднозначная:

программа \demos\sqlbrowser так и не видит мой плагин, НО теперь нормально собирается самописная прога, в которой задействован драйвер QMYSQL... т.о. либо проблемы с sqlbrowser (его я естественно тоже пересобирал) а моя прога нормально подхватила плагин, либо я ваще ничего не понимаю)))

точнее я написал кусок кода, где пытаюсь подключить QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); - собирается, соответственно он находит плагин

UPD: Мой самописный код присоеденился к серверу MySQL - следовательно драйвер работает -> проблема с sqlbrowser'ом
« Последнее редактирование: Февраль 10, 2009, 00:26 от toggetit » Записан
ритт
Гость
« Ответ #9 : Февраль 10, 2009, 01:09 »

Код:
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
соберётся и с плагином, и без. если драйвер доступен в одном приложении, он будет доступен и в другом (если с путями не намудрено)
Записан
toggetit
Гость
« Ответ #10 : Февраль 10, 2009, 01:26 »

все пути стандартны.

т.е. то, что собирается, ещё не значит что плагин работает? Но моё приложение присоеденилось к серверу MySQL - я увидел это в консоли MySQL... Следовательно всё работает, до этого (сбора плагина) приложение вроде бы не соединялось с сервером, выскакивала ошибка (в коде стандартная проверка на коннект) Если оно может собираться и работать без сборки плагина, зачем тогда вообще этот плагин?

Вы что-то меня ещё больше запутали))) Разъясните пожалуйста.
Записан
ритт
Гость
« Ответ #11 : Февраль 10, 2009, 02:33 »

не представляю как может одно приложение подхватывать плагин, а другое - нет, если с путями всё в порядке. во-всяком случае, у меня такого не бывало. были проблемы с 5.0.51а, но тогда вообще драйвер не подхватывался - пришлось откатываться на 5.0.51. сейчас пользую 5.1.31 (5.1.х) и в целом доволен - проблем с драйверами QtSql давно не наблюдал.
попробуй скопировать libmysql.dll в QTDIR/bin и затем запустить sqlbrowser - вдруг ?)...

зы. кстати, сборка релиз или дэбаг?
Записан
toggetit
Гость
« Ответ #12 : Февраль 10, 2009, 11:38 »

так, после того как скопировал dll'ку в Qt/bin - sqlbrowser увидел QMYSQL, но при попытки соединения с базой - ошибка "Driver not loaded"

релиз sqlbrowser - release =)

UPD: Самописный код РАБОТАЕТ с сервером MySQL - покрайней мере принимает данные оттуда
« Последнее редактирование: Февраль 10, 2009, 11:52 от toggetit » Записан
ритт
Гость
« Ответ #13 : Февраль 10, 2009, 12:23 »

тогда остаётся гадание на кофейной гуще и либастрал...
мне отсюда не видно что там не так.

если есть время, можно попробовать пересобрать кутэ начисто с советами из поста №8 (в этом треде) и ключиком конфигуры -plugin-sql-mysql (ещё полезно для отладки -DQT_DEBUG_SQL)
Записан
toggetit
Гость
« Ответ #14 : Февраль 12, 2009, 23:34 »

В общем - всё работает в моих проэктах, но SQLbrowser ещё держится))))

P.S. Константин, огромное вам спасибо за советы!
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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