windows qt连接postgresql(集锦)

来源:互联网 发布:51单片机的指令码构造 编辑:程序博客网 时间:2024/06/07 12:25

转载于:http://no001.blog.51cto.com/1142339/301357


经过一天半的时间 ,,终于搞定了。。。。哈哈哈和


下面还是一些我参考过的文章,有空我会整体的整理一下,。。。

---------------------------

It works :D Quite why I'm still a little perplexed but here is what I have done:


Downloaded 4.1.2 src - previously I have 4.1.1 mingw installer
Configured with: configure -debug-and-release -plugin-sql-sqlite -plugin-sql-odbc -qt-libpng -qt-libjpeg -qt-sql-psql -L C:\psql\lib 
Recompiled my app: placed the pgsql dlls in the same directory as the exe


I had also done the following prior to configure

set QTDIR=C:\Qt\4.1.2
set PATH=C:\Qt\4.1.2\bin
set PATH=%PATH%;C:\psql\include
set PATH=%PATH%;C:\psql\lib
set PATH=%PATH%;C:\MinGW\bin

So the differences are:


Slightly newer version of Qt - doubt if that makes any difference
I have the src rather than the installer - might make a difference
I have compiled it into Qt rather than as a plugin - might make a difference, although I doubt it.


When I get time I will compile Qt with pgsql as a plug in. I can't think of any difference at the moment.

jacek, thank you very much for your support and your valuable ideas.

graeme.

http://www.qtcentre.org/archive/index.php/t-1819.html

---------------------------------------


http://qtwiki.org/QPSQL_driver_not_loaded_-_unusual_solution

Recently had a lot of trouble making QPSQL driver available in QT 4.3.1 version. But fun part was that - driver loaded correctly then i copied all dll from {%pgsql)\bin\ files to executable directory.
Copied files list.
 comerr32.dlldepends.dllgssapi32.dlliconv.dllk5sprt32.dllkrb5_32.dlllibeay32.dlllibiconv2.dlllibintl3.dlllibpq.dlllibxml2.dlllibxslt.dllssleay32.dll 
Another interesting thing, that if I rename qsqlpsql4.dll to something else, driver still loads correctly :D :D. Perhaps I'm missing something, but at least it works now :)
By the way if drivers still does not get loaded try add this line in main.cpp file
 qApp->addLibraryPath( qApp->applicationDirPath() + "/plugins")
And plugins directory should look like : plugins\sqldrivers\qsqlpsql4.dll


-----------------------------------

我先安装了PostgreSQL 8.2。
再装DEV-C++
再Qt.
环境变量如下:
INCLUDE=D:\PostgreSQL\8.2\include;D:\Dev-Cpp\include;D:\qt\4.3.4\include
LIB=D:\PostgreSQL\8.2\lib;D:\Dev-Cpp\lib;D:\qt\4.3.4\lib
PATH=D:\PostgreSQL\8.2\bin;D:\Dev-Cpp\bin;D:\qt\4.3.4\bin
后运行 configure.exe -share -release -qt-sql-psql -qt-sql-odbc -qt-zlib -qt-gif -qt-libpng -qt-libjpeg -qt-style-windowsxp -platform win32-g++ -L D:\PostgreSQL\8.2\bin -I D:\PostgreSQL\8.2\include
到此一切正常。
可是运行mingw32-make后出现以下问题。
g++ -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-rel
oc -Wl,-s -mthreads -Wl -shared -Wl,--out-implib,d:\Qt\4.3.4\lib\libQtSql4.a -o
..\..\lib\QtSql4.dll object_script.QtSql.Release  -L"d:\Qt\4.3.4\lib" -L"d:\Post
greSQL\8.2\lib" -L"d:\Dev-Cpp\lib" -L"d:\qt\4.3.4\lib" -L"d:\Qt\4.3.4\lib" tmp\o
bj\release_shared\QtSql_resource_res.o -LD:\PostgreSQL\8.2\lib -lpq -lws2_32 -la
dvapi32 -lodbc32 -lQtCore4
D:\Dev-Cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot f
ind -lpq
collect2: ld returned 1 exit status
mingw32-make[2]: *** [..\..\lib\QtSql4.dll] Error 1
mingw32-make[2]: Leaving directory `D:/qt/4.3.4/src/sql'
mingw32-make[1]: *** [release] Error 2
mingw32-make[1]: Leaving directory `D:/qt/4.3.4/src/sql'
mingw32-make: *** [sub-sql-make_default-ordered] Error 2

请问各位朋友,这是怎么回事?如何解决?
不胜感激
0 0
原创粉丝点击