qt生成达梦oci的一个坑

根据其他人的经验可以成功生成达梦的oci,但是将oci.dll文件放在qt的sqldrivers文件夹内还是会报错,driver not loaded,此时将达梦的bin引入到qt工程中,报错变成了(3113,cannot logon,创建socket失败),
这里就要转到qt的oci工程下,修改qsql_oci.cpp文件,C:\Qt\Qt5.9.6\5.9.6\Src\qtbase\src\plugins\sqldrivers\oci;

修改函数bool QOCIDriver::open(const QString & db,
const QString & user,
const QString & password,
const QString & hostname,
int port,
const QString &opts)
{…
将 QString::fromLatin1(“(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=%1)(Port=%2))(CONNECT_DATA=(SID=%3)))”).arg(hostname).arg((port > -1 ? port : 1521)).arg(db);

修改为QString::fromLatin1(“%1:%2”).arg(hostname).arg((port > -1 ? port : 1521));//用于DM
//
}
参数只写ip:端口号,这里和Oracle是不同。
感谢KingRing的指导,后面查看达梦的手册,就只看到参数只写hostname也是能连上,前提是已经打开了默认端口5236,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值