set INCLUDE=%include%;D:\oracle\product\10.2.0\db_1\OCI\include;D:\Qt\Qt5.3.2\Tools\mingw482_32\include
set LIB=%lib%;D:\oracle\product\10.2.0\db_1\OCI\lib\MSVC
set path=%path%;D:\Qt\Qt5.3.2\Tools\mingw482_32\bin;D:\Qt\Qt5.3.2\5.3\mingw482_32\bin
cd D:\Qt\Qt5.3.2\5.3\Src\qtbase\src\plugins\sqldrivers\oci
qmake oci.pro
mingw32-make
mingw32-make 之后输出内容显示会将库输出到:D:\Qt\Qt5.3.2\5.3\Src\qtbase\plugins\sqldrivers
如下:
将其复制到:“D:\Qt\Qt5.3.2\5.3\mingw482_32\plugins\sqldrivers”即可。
测试:
#include <QCoreApplication>
#include<QSqlDatabase>
#include<QDebug>
#include<QSqlQuery>
int main(int argc, char *argv[]){
QCoreApplication a(argc, argv);
//连接oracle数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setPort(1521);
db.setHostName("localhost");
db.setDatabaseName("testsid");
db.setUserName("scott");
db.setPassword("tigger");
if (db.open()) {
qDebug()<< "链接远程数据库成功";
}else{
qDebug()<< "链接远程数据库失败";
}
//查询语句
QSqlQuery query("SELECT * FROM emp");
while (query.next()){
int no = query.value(0).toInt();
QString name = query.value(1).toString();
qDebug()<<no<<":"<<name;
}
db.close();
return a.exec();
}
输出:
链接远程数据库成功
7369 : "SMITH"
7499 : "ALLEN"
7521 : "WARD"
7566 : "JONES"
7654 : "MARTIN"
7698 : "BLAKE"
7782 : "CLARK"
7788 : "SCOTT"
7839 : "KING"
7844 : "TURNER"
7876 : "ADAMS"
7900 : "JAMES"
7902 : "FORD"
7934 : "MILLER"