Russian Qt Forum

Qt => Базы данных => Тема начата: fabricant от Июнь 07, 2011, 20:54



Название: Куда скопировать qsqlpsql4.dll?
Отправлено: fabricant от Июнь 07, 2011, 20:54
При компиляции программы выбило ошибку "QSqlDatabase: QPSQL driver not loaded". В интернете нашел, что нужно скомпилировать qsqlpsql4.dll я ее скомпилировал, а куда теперь ее скопировать? Пробовал в папку с проектом, в папку с программой и в system32 не помогает


Название: Re: Куда скопировать qsqlpsql4.dll?
Отправлено: somebyte от Июнь 07, 2011, 21:16
Его нужно положить в каталог: [Каталог Qt]/plugins/sqldrivers

При этом dll драйвера должна будет находится в этой директории на любом компьютере, куда будете устанавливать свое ПО.

Но если работаете с postgresql рекомендую dulldbtools, см. тему ниже. :D


Название: Re: Куда скопировать qsqlpsql4.dll?
Отправлено: fabricant от Июнь 07, 2011, 21:31
пробовал не помогает


Название: Re: Куда скопировать qsqlpsql4.dll?
Отправлено: somebyte от Июнь 07, 2011, 23:33
пробовал не помогает
Два файла? *.a + *.dll или *.lib + *.dll зависит от того чем компилить
И в файле проекта д.б. Qt += sql
Понимаю, что не идиот, просто уточняю.

Кроме того когда собирали драйвер, сформировался Makefile для него. В этом Makefile есть цель install. Можно посмотреть куда драйвер(dll) должна быть скопирована. Ну или просто скомпилировать при помощи make install.


Название: Re: Куда скопировать qsqlpsql4.dll?
Отправлено: Aleksey_Zh от Июнь 14, 2011, 09:16
Вроде всю жизнь длл кидали в bin, *.а - в lib.
Проверьте, объявлен ли постгри в configure.


Название: Re: Куда скопировать qsqlpsql4.dll?
Отправлено: cya-st от Июнь 14, 2011, 21:40
У меня там где установлен Qt запускается нормально. Но на чужой машине: Driver not loaded. База постгри. Дллки все скинул. В чем может быть проблема???


Название: Re: Куда скопировать qsqlpsql4.dll?
Отправлено: LisandreL от Июнь 14, 2011, 21:47
У меня там где установлен Qt запускается нормально. Но на чужой машине: Driver not loaded. База постгри. Дллки все скинул.
Куда скинул? Структуру папок сохранил?


Название: Re: Куда скопировать qsqlpsql4.dll?
Отправлено: cya-st от Июнь 14, 2011, 22:02
Разобрался сам, добавил libpq.dll в папку с программой. Заработало.


Название: Re: Куда скопировать qsqlpsql4.dll?
Отправлено: kolob от Ноябрь 14, 2011, 23:25
Тоже самое было. Скинул на другой комп директорию с прогой, в ней директория sqldrivers, в ней драйвер БД, в корне с экзешником остальные dll-ки QtGui4.dll, QtSql4.dll и т.д. Установил PostgreSQL ver 9.1. Запускаю приложение, драйвера не находит. Потикался, поиыкался, почитал форум, вроде сделал все как написано, решил добавить переменную QT_PLUGIN_PATH. Посмотрел где ищет драйвера через QCoreApplication::libraryPaths(), оказалась там где надо, в корневом каталоге приложения и в директории мною установленной в переменно QT_PLUGIN_PATH. Проверял зависимости через прогу dependenc(вроде), как написано в ассистенте.
В итоге оказалось надо было из директории bin где установлен постгрес, взять некоторые dll, в том числе и libpq.dll и скопировать в директорию с программой(кстате может только и libpq.dll, если кто лучше знает, то поправит меня, могу ошибаться, завтра проверю) и все заработало!!!

P.S. Извиняюсь, что там много воды налил тут, просто решил поподробнее расписать мой сегодняшний опыт, для следующих кто сталкнется с такой же проблемой. Иногда трудно найти ответ.