Как получить доступ к Postgresql, используя Qt в Windows - PullRequest
0 голосов
/ 16 марта 2009

Я занимаюсь разработкой приложения с использованием QtRuby и PostgreSQL. Я успешно разработал и успешно работает в Linux. Теперь я хочу запустить то же приложение в Windows. Но я не могу подключиться к базе данных (postgresql). Я получаю следующие ошибки:

 QSqlDatabase: QPSQL driver not loaded
 QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC

Ответы [ 4 ]

2 голосов
/ 16 марта 2009

Как говорится в сообщении об ошибке, драйвер QPSQL недоступен для Qt, с которым можно общаться с Postgres. Возможно, плагин еще не скомпилирован.

Как указано в этом руководстве , вам необходимо установить библиотеки разработчика PostgreSQL, а затем вручную собрать плагин драйвера Qt. Смотрите инструкции для точных команд.

0 голосов
/ 12 июня 2013

Отлично! Это сделано! Однако есть несколько советов, на которые следует обратить внимание: 1. Mingw-utils, 0.4-1 не будет работать на Windows 7, мы должны использовать 0.3. 2. В каталоге драйвера PSQL есть файл psql.json, пожалуйста, не удаляйте его.

0 голосов
/ 22 марта 2013

Postgresql с использованием QT в Windows: Как скомпилировать драйвер QPSQL - MinGw - Win7

1) проверьте каталог установки на моем компьютере:

PostgreSQL (32 bit)    C:\PSQL32\bin
Qt (32 bit)            C:\QT\4.8.0\bin
MingW32                C:\QT\qtcreator-2.4.0\mingw\bin      

2) добавить эти 3 каталога в системный PATH

3) Загрузите «mingw-utils» и установите в C: \ Qt \ 4.8.0 \ bin (нужна утилита REIMP.exe)

4) Преобразовать libpq.lib в полезный формат для mingw32:

CD C: \ PSQL32 \ lib

REIMP -d libpq.lib

Откройте libpq.def и удалите ВСЕ "_" в начале определений

dlltool --input-def libpq.def --output-lib libpq.a --dllname libpq.dll

5) Компиляция:

CD C: \ Qt \ 4.8.0 \ src \ plugins \ sqldrivers \ psql

qmake -o Makefile "INCLUDEPATH + = C: \ PSQL32 \ include" "LIBS + = C: \ PSQL32 \ lib \ libpq.a" psql.pro

mingw32-make debug

mingw32-make release

10) копия dll:

libqsqlpsqld4.a   qsqlpsqld4.dll    (debug)  

libqsqlpsql4.a   qsqlpsql4.dll      (release)

в каталоге:

C:\Qt\4.8.0\plugins\sqldrivers

НОВАЯ проблема для QT версии 5.01

существует несколько определений struct timespec

в файле pthread.h PostgreSQL (C: \ PSQL32 \ include \ pthread.h)

заменить:

# ifndef HAVE_STRUCT_TIMESPEC

с:

# if ((! Определено (_TIMESPEC_DEFINED)) && (! Определено (HAVE_STRUCT_TIMESPEC))))


Готово: -)

Faust

0 голосов
/ 26 января 2012
  1. Скомпилируйте плагин QPSQL, как указано здесь: http://ldc.usb.ve/docs/qt/sql-driver.html#qpsql-for-postgresql-version-7-3-and-above
  2. Добавьте путь к корзине PostgreSQL в переменную окружения PATH
...