时间:2021-07-01 10:21:17 帮助过:3人阅读
QT环境:Qt 5.3.2 /MinGW4.7.2/WIN7 32bit
打开Qt Command Prompt,分别执行以下命令,以编译Oracle驱动:
set INCLUDE=%include%;C:\oracle\product\10.2.0\db_1\OCI\include;C:\Qt\Qt5.3.2\Tools\MinGW\include set LIB=%lib%;C:\oracle\product\10.2.0\db_1\OCI\lib\MSVC cd C:\Qt\Qt5.3.2\5.3.2\Src\qtbase\src\plugins\sqldrivers\oci qmake oci.pro mingw32-make
其中,C:\oracle\product\10.2.0\db_1\OCI\include为Oracle OCI驱动源码所在目录,D:/QT/mingw/include为编译环境的位置。
执行完以上语句,就会生成libqsqloci.a、libqsqlocid.a、qsqloci.dll、qsqlocid.dll四个文件,把它们copy到C:\Qt\Qt5.0.2\5.0.2\mingw47_32\plugins\sqldrivers目录中即可。
在程序中测试:
#include <QCoreApplication> #include <QtSql/QSqlDatabase> #include <QDebug> #include <QStringList> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); qDebug()<<“Available drivers:”; QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() <<“/t” << driver; return a.exec(); }
可以看到对应的驱动列表:
驱动没有问题之后可以使用以下代码测试下是否可以连通oracle数据库
#include <QCoreApplication> #include <QtSql> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); db.setHostName("MY_IP_OR_HOST_NAME"); db.setDatabaseName("XE"); db.setUserName("test"); db.setPassword("test_password"); if (!db.open()) { qDebug() << db.lastError().text(); } else{ qDebug() << "Wow opened"; } return a.exec(); }
Qt编译Oracle OCI驱动
标签: