C++ qt连接到windows上的oracle数据库
在Windows 7上,我安装了qt creator,现在我正在尝试连接到oracle数据库。我安装了oracle客户端和plsql/developer,一切正常。在qt creator中,我有一个错误: QsqlDatabase:未加载QOCI驱动程序 这对我不起作用。是否清楚如何在不同的平台和情况下执行此操作?好的。我找到了解决办法 文件说 设置包含=%INCLUDE%;c:\oracle\oci\include 设置LIB=%LIB%;c:\oracle\oci\lib\msvc cd%QTDIR%\src\plugins\sqldrivers\oci qmakeoci.pro 恩马克 如果您没有使用Microsoft编译器,请将nmake替换为make-in 上面的那条线 但是make或nmake对我不起作用。因为我没有在我的机器上安装Microsoft Visual c++ 我已指示如何执行此操作:C++ qt连接到windows上的oracle数据库,c++,oracle,qt,oracle-call-interface,C++,Oracle,Qt,Oracle Call Interface,在Windows 7上,我安装了qt creator,现在我正在尝试连接到oracle数据库。我安装了oracle客户端和plsql/developer,一切正常。在qt creator中,我有一个错误: QsqlDatabase:未加载QOCI驱动程序 这对我不起作用。是否清楚如何在不同的平台和情况下执行此操作?好的。我找到了解决办法 文件说 设置包含=%INCLUDE%;c:\oracle\oci\include 设置LIB=%LIB%;c:\oracle\oci\lib\msvc cd%Q
#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();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
QSQLDABASE db=QSQLDABASE::addDatabase(“QOCI”);
db.setHostName(“我的IP或主机名”);
db.setDatabaseName(“XE”);
db.setUserName(“测试”);
db.setPassword(“测试密码”);
如果(!db.open())
{
qDebug()好的。我找到了解决方案
文件说
设置INCLUDE=%INCLUDE%;c:\oracle\oci\INCLUDE
set LIB=%LIB%;c:\oracle\oci\LIB\msvc
cd%QTDIR%\src\plugins\sqldrivers\oci
qmakeoci.pro
恩马克
如果您没有使用Microsoft编译器,请将nmake替换为make-in
上面的那条线
但是make或nmake对我不起作用。因为我没有在我的机器上安装Microsoft Visual c++
我已指示如何执行此操作:
首先别忘了安装qt源代码。在安装过程中,选中源代码复选框
然后下载并安装oracle客户端。在安装过程中选择运行时选项(即使您在oracle客户端上使用64位操作系统下载32位版本)。它将创建c:\app\user\product\client\u 1…目录
然后打开qtminGW命令行(开始->所有人物->qt[version]->[version]->minGW[version]->qt[version]用于桌面minGW[version]),并移动到oci源文件夹:
cd C:\Qt\Qt[version]\[version]\Src\qtbase\Src\plugins\sqldrivers\oci
然后,如文档所述,包括OCI(Oracle调用接口)路径和库:
设置包含=%INCLUDE%;c:\app\user\product[版本]\client\u 1\oci\INCLUDE
设置LIB=%LIB%;c:\app\user\product[version]\client\u 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();
}
#包括
#包括
#包括
int main(int argc,char*argv[])
{
qcorea应用程序(argc、argv);
QSQLDABASE db=QSQLDABASE::addDatabase(“QOCI”);
db.setHostName(“我的IP或主机名”);
db.setDatabaseName(“XE”);
db.setUserName(“测试”);
db.setPassword(“测试密码”);
如果(!db.open())
{
qDebug()好的。我找到了解决方案
文件说
设置INCLUDE=%INCLUDE%;c:\oracle\oci\INCLUDE
set LIB=%LIB%;c:\oracle\oci\LIB\msvc
cd%QTDIR%\src\plugins\sqldrivers\oci
qmakeoci.pro
恩马克
如果您没有使用Microsoft编译器,请将nmake替换为make-in
上面的那条线
但是make或nmake对我不起作用。因为我没有在我的机器上安装Microsoft Visual c++
我指导了如何使用d
INCPATH +=c:\app\user\product[version]\client_1\oci\include
LIBS+=-Lc:\app\user\product[version]\client_1\oci\lib\msvc
QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
db.setConnectOptions();
db.setDatabaseName("Driver={Microsoft ODBC for Oracle};Server=127.0.0.1:1521;Uid=ep;Pwd=605605");
if(!db.open())
exit(0);
QSqlQuery query(db);
query.exec("select * from t");
while(query.next())
QMessageBox::information(0,"",query.value(1).toString());