我的版本:Qt 5.6.3(VS2015版) PostgreSQL 10.7(32位)
1.编译驱动
需要Qt源码,对应下载:http://download.qt.io/official_releases/qt/5.6/5.6.3/single/qt-everywhere-opensource-src-5.6.3.zip
解压后,打开Qt的命令行工具,cd到F:\qt-everywhere-opensource-src-5.6.3\qtbase\src\sql\drivers\psql,执行
qmake "INCLUDEPATH+=F:/PostgreSQL/include" "LIBS+=F:/PostgreSQL/lib/libpq.lib" psql.pro

再执行nmake,我这里没配置环境变量用不了,所以直接打开VS2015的命令行工具,cd到相应目录执行nmake

编译完成后,在F:\qt-everywhere-opensource-src-5.6.3\qtbase\plugins\sqldrivers目录可以找到编译好的dll和lib,将两个dll复制到Qt的数据库驱动目录:
C:\Qt\Qt5.6.3\5.6.3\msvc2015\plugins\sqldrivers
2.程序运行
//.pro添加 QT+=sql #include "mainwindow.h" #include <QApplication> #include <QSqlDatabase> #include <QSqlError> #include <QLibrary> #include <QDebug> int main(int argc, char *argv[]) { QApplication a(argc, argv); QSqlDatabase pgdb=QSqlDatabase::addDatabase("QPSQL"); pgdb.setHostName("yourdata"); pgdb.setPort(yourdata); pgdb.setDatabaseName("yourdata"); pgdb.setUserName("yourdata"); pgdb.setPassword("yourdata"); if(!pgdb.open()) qDebug()<<"Failed to connect PGSql."<<pgdb.lastError(); else qDebug()<<"Success to connect PGSql."; MainWindow w; w.show(); return a.exec(); }
注意,还要把PostgreSQL bin目录(F:\PostgreSQL\bin)下的所有dll复制到程序Debug目录。
文章评论