Мы хотели бы перейти с Occi 18 на Occi 19.3.0.0.0, потому что мы хотим быть независимыми от старых библиотек MS (MSVCR120.DLL).
Но при подключении базы данных возникает следующая ошибка:
"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 ..."
Когда мы удаляем «OCCIUTF16», «OCCIUTF16» в createEnvironment, соединение успешно устанавливается.
Мы также признали, что oci.dll не был загружен в эту простую программу с использованием occi 19. С occi 18 был загружен oci.dll.
#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
Базовая информация о пакете освещения
Ср 29 мая 22:35:38 MDT 2019
Клиентская общая библиотека 64-битная - 19.3.0.0.0
Есть идеи?
Заранее спасибо!