在 Windows 7 上,我安装了 qt creator,现在我正在尝试连接到 oracle 数据库。我安装了 oracle 客户端和 plsql/developer,一切正常。在 qt creator 中我有错误:
QsqlDatabase: QOCI driver not loaded
这qt documentation对我不起作用。是否有明确的教程说明如何在不同的平台和情况下执行此操作?
最佳答案
好的。我找到了解决方案。
文档说
set INCLUDE=%INCLUDE%;c:\oracle\oci\include
set LIB=%LIB%;c:\oracle\oci\lib\msvc
cd %QTDIR%\src\plugins\sqldrivers\oci
qmake oci.pro
nmake
If you are not using a Microsoft compiler, replace nmake with make in the line above.
但是make 或nmake 对我不起作用。因为我没有在我的机器上安装 Microsoft Visual c++。
我给出了如何执行此操作的说明:
首先不要忘记安装 qt 源。在安装期间检查 Sources 复选框。
然后下载并安装oracle客户端win32_11gR2_client.zip .在安装过程中选择Runtime 选项。(即使您使用的是 64 位操作系统,也可以在 oracle 客户端上下载 32 位版本)。它创建 c:\app\user\product\client_1... 目录
然后打开 qt minGW 命令行(开始 -> 所有 peograms -> qt[版本] -> [版本] -> MinGW [版本] -> Qt [版本] for Desktop MinGW [version]) 并移动到 oci 源文件夹:
cd C:\Qt\Qt[version]\[version]\Src\qtbase\src\plugins\sqldrivers\oci
- 然后如文档所述包括 OCI(Oracle 调用接口(interface))路径和库:
set INCLUDE=%INCLUDE%;c:\app\user\product[version]\client_1\oci\include
set LIB=%LIB%;c:\app\user\product[version]\client_1\oci\lib\msvc
5.通过执行这两行来编译oci驱动程序:
qmake oci.pro
mingw32-make
它将为您创建两个 .dll 文件 qsqloci.dll(发布版)和 qsqlocid.dll(调试版)
- 最后一步是将这两个文件复制到 qtcreator 安装文件夹中。 前往:
C:\Qt\Qt[version]\[version]\Src\qtbase\plugins\sqldrivers
并将这些文件复制到:
C:\Qt\Qt[version]\[version]\mingw[version]\plugins\sqldrivers
然后你就可以开始了。检查连接试试这个代码:
#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();
}
关于c++ - windows上qt连接oracle数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29508725/