Qt中PostgreSQL数据库驱动插件的编译
2015-07-18 10:02
579 查看
Qt中PostgreSQL数据库驱动插件的编译
2012年1月19日
其它没有编译的文件要手动进行编译,编译过程在帮助文件里有说明;
cd%QTDIR%\src\plugins\sqldrivers\psql
qmake "INCLUDEPATH+=C:\psql\include""LIBS+=C:\psql\lib\ms\libpq.lib" psql.pro
nmake
在Qt的源文件中有psql的工程文件,只要添加相应的postgresql的库函数,就可以进行编译了;
qmake "INCLUDEPATH+=C:\psql\include""LIBS+=C:\psql\lib\ms\libpq.lib" psql.pro
nmake
在Qt/plugins/sqldrivers下会出现qsqlpsqld4.dll/lib的相关文件;
#include
<QtSql>
QSqlDatabasedb=QSqlDatabase::addDatabase("QPSQL");
QStringListlstDrivers=QSqlDatabase::drivers();
qDebug()<<"Support Drivers:";
foreach(QStringdriver,lstDrivers)
{
qDebug()<<driver;
}
编译成功的话,会在output中出现如下:
Support Drivers:
"QSQLITE"
"QODBC3"
"QODBC"
"QPSQL7"
"QPSQL"
如果没有加载postgresql的话,会出现提示:
QSqlDatabase: QPSQL driver not loaded
如果成功加载,则没有相关提示;
2012年1月19日
1 PostgreSQL概述
postgresql默认编译Sqlite和ODBC其它没有编译的文件要手动进行编译,编译过程在帮助文件里有说明;
cd%QTDIR%\src\plugins\sqldrivers\psql
qmake "INCLUDEPATH+=C:\psql\include""LIBS+=C:\psql\lib\ms\libpq.lib" psql.pro
nmake
在Qt的源文件中有psql的工程文件,只要添加相应的postgresql的库函数,就可以进行编译了;
2 PostgreSQL编译
2.1 下载PostgreSQLwindow32编译程序
将其安装在C:\pgsql中;如果是win32的安装程序,如果在ProgramFile文件夹下,则应将其内容Copy到无空格的目录中;2.2 编译PostgreSQL在Qt数据库驱动插件;
cd%QTDIR%\src\plugins\sqldrivers\psqlqmake "INCLUDEPATH+=C:\psql\include""LIBS+=C:\psql\lib\ms\libpq.lib" psql.pro
nmake
在Qt/plugins/sqldrivers下会出现qsqlpsqld4.dll/lib的相关文件;
2.3 将PostgreSQL需要的dll复制到应用程序中
将PostgreSQL目录下BIN中的全部dll都Copy到应用程序的Debug目录中,主要包括SSL和字符编码类型转换的相关内容;2.3.1 libeay32.dll:是OpenSSL加密特性相关文件,用于通过网络加密传输;
2.3.2 libiconv-2.dll:GNU提供的用于Unicode和其它不同编码类型之间转换的工具(iconv()函数);
2.3.3 libintl-8.dll:GNU提供对原生语言支持(gettext()函数);
2.3.4 libpq.dll:postgresql入口程序;
2.3.5 sseay32.dll:OpenSSL工具箱;
3 PostgreSQL测试
新建一个qt工程,加入如下语句:#include
<QtSql>
QSqlDatabasedb=QSqlDatabase::addDatabase("QPSQL");
QStringListlstDrivers=QSqlDatabase::drivers();
qDebug()<<"Support Drivers:";
foreach(QStringdriver,lstDrivers)
{
qDebug()<<driver;
}
编译成功的话,会在output中出现如下:
Support Drivers:
"QSQLITE"
"QODBC3"
"QODBC"
"QPSQL7"
"QPSQL"
如果没有加载postgresql的话,会出现提示:
QSqlDatabase: QPSQL driver not loaded
如果成功加载,则没有相关提示;
相关文章推荐
- QTP 中class 类的应用(一)
- QTP 应该DOM ,web测试不再困难
- JScript在QTP中的终极探究(二)
- JScript在QTP中的应用探究(一)
- QTP/UFT 11中EmbedScript 和 RunScript 的区别
- 各种小部件的垂直布局
- 自学QT,第一部分,信号与槽
- Qt笔记一
- qt widget设置Qt::FramelessWindowHint和Qt::WA_TranslucentBackground, 会出现一个bug: 在最小化后还原时界面停止刷新
- 关于QT下资源使用和资源占用内存过多的问题
- qtcreator项目目录管理
- pyqt中QDateTimeEdit/QDateEdit相关使用方法
- Qt字符转换
- QT5学习
- Qt数据库:(二)添加MySQL驱动插件
- Qt-优化布局结构
- Ubuntu14.04 LTS Qt 5.3.1下的QtCreator fcitx,ibus不能输入中文
- Qt中 QString 和int, char等的“相互”转换
- QT 获取各种路径
- QT 按钮切换背景图片