Qt访问Oracle数据库的驱动说明
更新时间:2023-09-20 09:14:01 阅读量: 医药卫生 文档下载
Qt访问Oracle数据库的驱动编译说明
Qt免费版本没有提供QOCI驱动(Qt访问Oracle的用户接口驱动),因此必须通过利用源代码编译生成QOCI。本文介绍基于不同操作系统(Win7_X64和RHEL6.1_X64)和编译器(Win7+MinGW/VS2008和RHEL+GCC)如何生成QOCI。
一、Win7_X64系统
安装VS2008、qt-win-opensource-4.8.0-vs2008、qt-vs-addin-1.1.10。安装完毕后,则可以实现基于vs2008实现Qt软件开发。
编译生成QOCI时必须用到Oracle的相关文件(oci.lib和oci.h)。如果安装了Oracle11g数据库,则编译所需要的头文件和库文件分别在$ORACLE_HOME\\OCI\\include和$ORACLE_HOME\\OCI\\lib\\MSVC。如果未安装Oracle11g也可从Oracle官网下载instantclient-sdk-nt-11.2.0.3.0.rar,直接解压可以获得所需要的头文件和库文件。(QTDIR=D:\\qt\\4.8.0\\; ORACLE_HOME=E:\\app\\oracle\\product\\11.2.0\\dbhome_1)
1、编译生成QOCI_vs2008
利用vs2008打开D:\\Qt\\4.8.0\\src\\plugins\\sqldrivers\\oci\\oci.pro 设置qsqloci的工程属性,增加头文件oci.h的路径支持
设置qsqloci的工程属性,设置oci.lib路径支持
通过设定configuration manager依次生成QOCI的调试版和发布版。
编译生成Debug版本和Release版本的动态库:
qsqlocid4.dll、qsqlocid4.lib和qsqloci4.dll、qsqloci4.lib。将上述文件拷贝至$QTDIR\\plugins\\sqldrivers文件中即可。 2、编译生成QOCI_MinGW
MinGW编译器采用了QtCreator2.4.1集成的MinGW编译环境。采用了qt-everywhere-opensource-src-4.8.1.tar源代码包。(假设QtCreator的安装路径为D:\\QtSDK,Qt源代码解压路径D:\\qsrc)
开始编译前,需要修改几个环境变量: 在PATH中添加
D:\\QtSDK\\mingw\\bin(备注:mingw32-make路径) D:\\QtSDK\\Desktop\\Qt\\4.8.0\\mingw\\bin(备注:qmake路径)
在LIB中添加
D:\\QtSDK\\Desktop\\Qt\\4.8.0\\mingw\\lib(备注:MinGW库文件路径) E:\\app\\oracle\\product\\11.2.0\\dbhome_1\\OCI\\lib\\MSVC (备注:oci.lib路径) 在INCLUDE中添加
E:\\app\\oracle\\product\\11.2.0\\dbhome_1\\OCI\\include(备注:oci.h路径)
通过cmd进入E:\\qsrc\\src\\plugins\\sqldrivers\\oci\\路径,执行qmake和mingw32-make,如下图
编译后生成的动态库libqsqloci4.a、libqsqlocid4.a、qsqloci4.dll、qsqlocid4.dll
在E:\\qsrc\\plugins\\sqldrivers文件夹中。将上述文件拷贝至Qt目录对应的plugins\\sqldirver中即可。
3、QOCI插件安装
利用上述方法生成QOCI插件。如果开发环境采用的QtCreator集成开发环境(安装路径QTSDK_PATH=D:\\QtSDK\\Desktop\\Qt\\4.8.0),则根据不同的编译器将上述库文件放置在$QTSDK_PATH\\vs2008\\plugins\\sqldrivers或
$QTSDK_PATH\\mingw\\plugins\\sqldrivers下面即可。如果是单独安装的Qt(QTDIR= D:\\Qt\\4.8.0)在放置在$QTDIR\\plugins\\sqldrivers下即可。
4、Oracle访问程序例子
1. #include
5. int main(int argc, char *argv[]) 6. {
7. QCoreApplication a(argc, argv);
8. //////////////////////////////////////////////////// 9. QSqlDatabase db = QSqlDatabase::addDatabase(\10. db.setHostName(\11. db.setDatabaseName(\12. db.setUserName(\13. db.setPassword(\14. db.setPort(1521); 15. if (db.open())
16. printf(\打开成功/n\17. else
18. printf(\打开失败/n\
19. //////////////////////////////////////////////////// 20. QSqlQuery query(\21. while (query.next()) {
22. QString country = query.value(0).toString(); 23. printf(\24. }
25. //////////////////////////////////////////////////// 26. return a.exec(); 27. }
正在阅读:
Qt访问Oracle数据库的驱动说明09-20
党支部七项组织生活制度落实规范02-25
我亲爱的母校05-18
我懂得了诚实作文600字07-08
小学生孝敬父母的诗歌03-30
暖气安装公司推荐 - 图文11-28
2014年组织行为学案例分析Word版07-27
市政工程雨季施工方案11-21
小学生二年级作文我的同桌20006-13
常见的文言句式和固定搭配11-17
- 四川省富顺县北湖实验学校2016-2017年中考二模数学试题(无答案)
- (通用版)2018-2019版高中物理 第二章 交变电流 2.1 交变电流学案 教科版选修3-2
- 2018-2019蚌埠市小学数学总复习题库 - 图文
- 新媒体新专业技术教学应用研讨会反思表 - 图文
- 食品物性学复习提纲
- 医学英语
- 青岛版数学五年级下册第五-八单元单元备课
- 英文名 含义与来源
- 广东省深圳市公务员考试申论真题答案及解析
- 元素含量对奥氏体不锈钢性能的影响 - 图文
- 与元素周期律第3节元素周期表的应用第1课时认识同周期元素性质的递变规律同步备课学案鲁科版必修2
- 浅析互联网+时代英语教学中翻转课堂的实践应用
- 演示技巧培训课程内容
- 防洪堤施工方案
- Fundamentals of Single-chip Microcomputer外文文献翻译 电子信息工程 单片机基础 中英文对照
- 2012年教师资格《中学综合素质》全真试卷及解析(1)
- 《计算机绘图》练习题
- 学术报告动态ppt模板
- 建设监理模拟试题一
- S版三年级标点符号专项练习