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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Fb driver  (Прочитано 6943 раз)
Jo
Гость
« : Май 28, 2010, 13:19 »

Может кто нить по пунктам рассказать как подрубить птицу к куту?

Все время пишет: драйвер нот лодед.. поискал по форуму вроде все сделал прально, собрал плагин в папке "D:\Qt\4.5.0\plugins\sqldrivers" появились след файлы:
               qsqlibased4.exp qsqlibased4.dll qsqlibased4.lib   как я понял для дебага и
               qsqlibase4.exp qsqlibase4.dll qsqlibase4.lib        для релиза

я их копировал и в папку проекта и куда только не копировал, все пишет драйвер нот лодед
Как я понимаю тема избитая, може кто поделится ссылочкой или напишет как пофиксить... вообще мне надо embedded прикрутить, но для начала хотя бы с этим разобраться


Зарание благодарен.
Записан
crossly
Гость
« Ответ #1 : Май 28, 2010, 13:32 »

возможно поможет чистка ветки реестра HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.6.false
Записан
Jo
Гость
« Ответ #2 : Май 28, 2010, 14:01 »

дык надо удалить разделы внутри или что то добавить?
Записан
crossly
Гость
« Ответ #3 : Май 28, 2010, 14:36 »

удалить весь
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #4 : Май 28, 2010, 19:05 »

и при работе программы нужно, чтобы птиц был доступен в окружении (переменная PATH)
Записан

Юра.
crossly
Гость
« Ответ #5 : Май 31, 2010, 14:01 »

либо положить dll к exe
Записан
Jo
Гость
« Ответ #6 : Июнь 01, 2010, 12:20 »

Qt Plugin Cache 4.6.false этот раздел удалил, он появляется снова, дллки доступны в PATH,
но все ровно пишет драйвер нот лодед...

Плагины собирал след образом:
    Открыл в студии проект D:\Qt\4.6.0\src\plugins\sqldrivers\ibase\ibase.pro
    Подключил папку с хидерами птицы D:\Firebird\Firebird_2_1\include\
    Скорпировал fbclient_ms.lib в папку проекта и переименовал ее в gds32_ms.lib
    Прописал путь к бинарникам птици в PATH.
    Собрал проект, получил на выходе в этой папке D:\Qt\4.6.0\plugins\sqldrivers\
    3 файла qsqlibase4.dll, qsqlibase4.lib, qsqlibase4.exp
    тудаже добавил и эти же файлы только с буквой "d" для дебаг версий.

После всего проделанного в реестре появился раздел  HKEY_CURRENT_USER\Software\Trolltech\OrganizationDefaults\Qt Plugin Cache 4.6.false

Что это за раздел почему он появляется и что я не так делаю? Очень прошу помощи....
Буду очень благодарен!

P.S. Может имеет значение в чем строил? В прошлый раз строил в QtCreator, в этот раз собрал в студии.. ((
« Последнее редактирование: Июнь 01, 2010, 12:22 от Jo » Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #7 : Июнь 01, 2010, 14:04 »

Цитировать
Может имеет значение в чем строил? В прошлый раз строил в QtCreator, в этот раз собрал в студии.

Имеет значение не в чем в смысле IDE а каким компилятором - если в Creator-е использовался компилятор Microsoft - то без разницы, а вот если minGW то работать не будет. В общем смысле Qt и драйвер должны быть собраны одним компилятором. В линукс для работы драйвера достаточно положить его в папку qt/plugins/sqldrivers а вот в windows не пробовал не разу...
Записан
Jo
Гость
« Ответ #8 : Июнь 01, 2010, 14:26 »

тогда все собрано одним комп.
драйвера лежать в папке D:\Qt\4.6.0\plugins\sqldrivers

нарыл такой прмер где надо явно указать расположение плагинов

Код:
QStringList list_path;    
QDir dir = QDir(a.applicationDirPath()+"/sqldrivers/");    
list_path << dir.absolutePath () << a.libraryPaths();    
a.setLibraryPaths( list_path  );

но не помогло

итого получается что эти файлы есть как в папке программы так и в Qt\plugins\sqldrivers\:
      qsqlibased4.dll
      qsqlibased4.lib
      qsqlibase4.dll
      qsqlibase4.lib

Нужный раздел реестра снесен
В переменной PATH указан путь до бинарников FB

Результат: Driver not loaded...

Ребят кто знает что делать? Может кто скажет кто как по пунктам решал эту проблему или подобную?
« Последнее редактирование: Июнь 01, 2010, 15:11 от Jo » Записан
break
Гипер активный житель
*****
Offline Offline

Сообщений: 846


Просмотр профиля
« Ответ #9 : Июнь 01, 2010, 16:06 »

вероятно саму библиотеку плагина Qt находит - но не может ее загрузить т.к. та не находит библиотеку сервера БД - надо выяснить какие библиотеки требуются ей и проверить доступны ли они в path
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #10 : Июнь 01, 2010, 17:11 »

>>Ребят кто знает что делать?
Dependency Walker в помощь, запусти в нём свою софтину, он покажет, что и откуда пытается загрузить твоё приложение.
« Последнее редактирование: Июнь 01, 2010, 17:13 от lit-uriy » Записан

Юра.
Jo
Гость
« Ответ #11 : Июнь 01, 2010, 19:32 »

Как то все решилось...
Опишу по шагам:
Скопировал fbclient_ms.lib из D:\Firebird\Firebird_2_1\lib и переименовал в fbclient.lib в папку проекта
D:\Qt\4.6.0\src\plugins\sqldrivers\ibase\

Затем открыл в QtCreator прокект D:\Qt\4.6.0\src\plugins\sqldrivers\ibase\ibase.pro

в конфигурации пректа в разделе этапы сборки в дополнительных параметрах указал такую строчку:
-o Makefile INCLUDEPATH+=D:\Firebird\Firebird_2_1\include LIBS+=-lfbclient

собрал в режиме дебаг и релиз
В результате в папке D:\Qt\4.6.0\plugins\sqldrivers появились нужные файлы qsqlibase4.* и qsqlibased4.*

собсно драйвер есть...

так же при использовании embedded  версии fb необходимо переименовать файл fbembed.dll в fbclient.dll и положить в папку с екзешником..

все должно работать у меня наконец заработало..

ЗЫ так и не понял в чем грабли просто с 5ого раза одних и тех же действий заработало. видно был косяк на этапе сборки

Всем огромное спасибо!
Тема закрыта
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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