Windows下Qt访问Oracle数据库,将编译好的qsqloci(d).dll文件,在客户环境下,放在哪里?
我用的是 VS2010 + InstantClient 12.1.0.2.0 的 SDK + Qt5.5.1_msvc2010
现在情况是,qsqloci 编译好了,
放在了: C:\Qt\Qt5.5.1_msvc2010\5.5\msvc2010\plugins\sqldrivers 下面
基本连接代码写好了,可以运行,连接正常。
但我想要模拟客户环境时,就有点懵了,因为也不能在客户那装个 Qt 啊
所以按照网络上找的 方法,把 sqldrivers 目录复制到我的程序所在目录下,
再双击我的程序……
Qt5Sqld.dll, Qt5Cored.dll 已经拷进去了,程序可以运行。
但是在 QSqlDatabase::addDatabase("QOCI") 时出现:QSqlDatabase: QOCI driver not loaded
【这个情况是这样,刚试的时候是成功的,我又把程序目录下的 sqldrivers 目录改名了,居然仍能正确执行,半天才发现 Qt 安装目录下的那个 sqldrivers 目录下,我用 VS2010 调试证明了,加载的就是那个目录下的,后来我就把那个目录下的删除了,不能改名,因为更后来我又发现,只要在那个目录就能自动识别。。。。】
后来我又根据vs2010(因为它会提示加载了那些dll),总结出需要的 qt,oracle 相关dll 列表
Qt5Sqld.dll
Qt5Cored.dll
qsqlocid.dll 我测试时用的调试版
oci.dll
oraociei12.dll
oraons.dll
程序目录复制了一份,sqldrivers 子目录也复制了一份,故障依旧。
然后我就想了,可能内部代码自动找到了 “qt安装目录下的【插件目录】”
可是客户环境99%以上不会安装qt开发环境,
这怎么整?