首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OCCI 19.3.0:使用OCCIUTF16时createConnection崩溃

OCCI 19.3.0:使用OCCIUTF16时createConnection崩溃
EN

Stack Overflow用户
提问于 2019-07-11 19:33:36
回答 1查看 248关注 0票数 0

我们希望从occi 18升级到occi 19.3.0.0.0,因为我们想独立于旧的MS库(MSVCR120.DLL)。

但在连接数据库时出现以下错误:

代码语言:javascript
复制
"Program: C:\Windows\SYSTEM32\MSVCP140D.dll

File: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE\xstring

Line: 1695 Expression: string subscript out of range



For information ..."

当我们删除createEnvironment中的"OCCIUTF16","OCCIUTF16“时,连接成功。

我们还认识到,在这个简单的程序中,使用occi 19加载的不是oci.dll,而是使用occi 18加载的oci.dll。

代码语言:javascript
复制
#include "occi.h"

#include <iostream>
using namespace oracle::occi;
using namespace std;

int main(int argc, wchar_t * argv[])
{
    try {
        // OK
        //auto env = Environment::createEnvironment(Environment::Mode(Environment::OBJECT | Environment::THREADED_MUTEXED));
        //auto conn = env->createConnection("SCOTT", "tiger", "ORATEST");

        // ERROR
        auto env = Environment::createEnvironment("OCCIUTF16", "OCCIUTF16",    Environment::Mode(Environment::OBJECT | Environment::THREADED_MUTEXED));
        UString user((utext*)L"SCOTT");
        UString pwd((utext*)L"tiger");
        UString host((utext*)L"ORATEST");
        auto conn = env->createConnection(user, pwd, host);
    }
    catch (SQLException & ex) {
        cout << ex.what();
    }
    return 0;
}

环境: ORACLE SERVER 12.1.0.2 Microsoft Visual C++ 2017编译器15.9.13版

基本轻量级封装信息

5月29日星期三22:35:38 MDT 2019

客户端共享库64位- 19.3.0.0.0

有什么想法吗?

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2019-07-18 16:29:55

调试失败时,你能提供完整的堆栈吗?

  • MSVCP140D.dll (D -

) ->,所以,我假设你是用ORAOCCIxxD.LIB (调试版本)编译的。如果您正在使用调试版本,请使用调试版本中的所有组件。

  • 是,现在不会将OCI.DLL与ORAOCCI.DLL一起加载。

谢谢,-P。文卡特拉曼。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56988240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档