如何在Windows中使用Qt访问Postgresql

时间:2009-03-16 07:09:23

标签: windows postgresql qtruby

我正在使用QtRuby和PostgreSQL开发一个应用程序。我在Linux中成功开发并运行成功。现在我想在Windows中运行相同的应用程序。但我无法连接到数据库(postgresql)。我收到以下错误:

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

4 个答案:

答案 0 :(得分:2)

正如错误消息所示,QtQL驱动程序无法与QtC进行对话。可能这个插件尚未编译。

this how-to所示,您需要安装PostgreSQL开发人员库,然后手动构建Qt驱动程序插件。请参阅确切命令的操作方法。

答案 1 :(得分:0)

  1. 按照此处的说明编译QPSQL插件:http://ldc.usb.ve/docs/qt/sql-driver.html#qpsql-for-postgresql-version-7-3-and-above
  2. 将PostgreSQL bin路径添加到PATH环境变量

答案 2 :(得分:0)

在Windows中使用QT的Postgresql:如何编译驱动程序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个目录添加到系统路径

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有多个定义

在PostgreSQL的文件 pthread.h 中(C:\ PSQL32 \ include \ pthread.h)

取代:

  

#ifndef HAVE_STRUCT_TIMESPEC

使用:

  

#if((!defined(_TIMESPEC_DEFINED))&&(!defined(HAVE_STRUCT_TIMESPEC)))


完成: - )

浮士德

答案 3 :(得分:0)

大!完成! 但是有一些提示需要注意: 1. Mingw-utils,0.4-1不适用于Windows 7,我们必须使用0.3。 2. PSQL驱动程序目录中有一个psql.json文件,请不要删除它。