Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 无法加载QOCI驱动程序_C++_Oracle_Qt_Qsqldatabase_Qoci - Fatal编程技术网

C++ 无法加载QOCI驱动程序

C++ 无法加载QOCI驱动程序,c++,oracle,qt,qsqldatabase,qoci,C++,Oracle,Qt,Qsqldatabase,Qoci,几天前,我编译了oracle驱动程序,并成功地用Qt打开了它,但今天,我在使用相同的代码时遇到了麻烦!代码如下: bool isAvailable = QSqlDatabase::isDriverAvailable("QOCI"); if(isAvailable) qDebug() << "QOCI driver is available!"; else { qDebug() << "QOCI driver is not available!"; } QS

几天前,我编译了oracle驱动程序,并成功地用Qt打开了它,但今天,我在使用相同的代码时遇到了麻烦!代码如下:

bool isAvailable = QSqlDatabase::isDriverAvailable("QOCI");
if(isAvailable)
    qDebug() << "QOCI driver is available!";
else {
    qDebug() << "QOCI driver is not available!";
}
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setPort(1521);
db.setHostName("127.0.0.1");
db.setDatabaseName("orcl");
db.setUserName("c##scott");
db.setPassword("tiger");
bool ok = db.open();
if(ok) {
    qDebug() << "connect sucess!";
}

Qt的版本是5.9.0,oracle是12c。我对这个问题感到非常不安,谁能帮助我?

如果Qt驱动程序可用但无法加载,通常意味着底层API丢失或损坏。检查您的Oracle客户端API(OCI)安装、路径等。补充提示:检查OCI是否与您需要的版本相同(32 ou 64位)。我遇到了这个问题,这就是原因。虽然我尝试连接到Oracle 11g数据库,但也遇到了同样的问题。我的设置是从Qt5.9/instant oracle 11移动到Qt5.12。由于编译错误,我无法保留instant Oracle11,因此我不得不转到instant Oracle12.1,但我不能使用任何其他版本:instant Oracle12.2导致了相同的错误(驱动程序未加载,但它在列表中,并且是兼容版本),instant Oracle18+崩溃,在kernel32.dll中找不到“GetOverlappedResultEx”(目标平台为Windows7/mingw)
QOCI driver is available!
QSqlDatabase: QOCI driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QOCI QOCI8 QODBC 
QODBC3 QPSQL QPSQL7