Как получить доступ к Postgresql, используя Qt в Windows

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

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

4 ответа

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

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

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 - имя_файла 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

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

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

  1. Скомпилируйте плагин QPSQL, как указано здесь: http://ldc.usb.ve/docs/qt/sql-driver.html
  2. Добавьте путь к папке PostgreSQL в переменную среды PATH
Другие вопросы по тегам