linux 下 Qt5 链接 oracl

win7下 Qt5 链接 oracl  文章很多。但不适用与linux 下。

我的环境: centos 6.5   Qt5.4  oracl11g clinet

一。 编译驱动库文件libqsqloci.so

QT打开 /opt/Qt5.4.0/5.4/Src/qtbase/src/plugins/sqldrivers/oci (安装QT是要指定了src 才有此文件)

修改oci.pro 增加以下两句

INCLUDEPATH += /opt/oracle11g/sdk/include  #oracl开发要用到的头文件
LIBPATH += /opt/oracle11g/  #oracl开发要用到的库文件

linux 下 Qt5 链接 oracl_第1张图片

然后执行qmake  和build

linux 下 Qt5 链接 oracl_第2张图片

注:编译完成后, 却在对应的目录下找不到生成的文件。看打印信息 却发现 跑到/plugins/sqldrivers/ 目录下去了,不知道为什

mv -f libqsqloci.so /plugins/sqldrivers/

将  libqsqloci.so  复制到/opt/Qt5.4.0/5.4/gcc_64/plugins/sqldrivers/ 目录下即可;

二: 测试

测试代码:

#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
////////////////////////////////////////////////////
    QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
    db.setHostName("122.229.31.212");
    db.setDatabaseName("WESOFT");
    db.setUserName("ga");
    db.setPassword("foxhis123");
    db.setPort(11521);
    if (db.open())
        qDebug() << "打开成功/n";
    else
        qDebug() << "打开失败/n";
////////////////////////////////////////////////////
    QSqlQuery query("SELECT column_1 FROM table_1");
    while (query.next()) {
        QString country = query.value(0).toString();
        qDebug() << country.toLocal8Bit().data();
    }
////////////////////////////////////////////////////
    return a.exec();
}

追加 .pro 文件   QT       += sql

输出:"打开成功/n";



你可能感兴趣的:(Qt,oracl,qt,oracl,linux,centos)