Как заставить Oracle C ++ Call interface (OCCI) работать на Visual Studio? - PullRequest
0 голосов
/ 26 марта 2020

Я учусь и использую oracle с SQL. Я создал базу данных с OracleSQLDeveloper и теперь я пытаюсь получить доступ к проекту, написанному на C ++.

Я искал и обнаружил, что Oracle имеет Oracle C ++ Call Interface (OCCI) и, используя это, я могу добиться того, чего хочу.

Мой вопрос: кто-то знает, что именно мне нужно сделать, чтобы OCCI работал в Visual Studio? Я не могу заставить его работать вообще, и я провожу так много времени.

Надеюсь, что кто-то может мне помочь, спасибо!

PD: Извините за мой английский sh:)

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Ниже приведен скрипт компиляции для приложения OCCI на компьютере Linux, на windows он будет более или менее одинаковым.

g++ someSourceFiles.cpp -o out -I$INC_DIR -I$ORACLE_HOME/lib -I$ORACLE_HOME/precomp/public -I$ORACLE_HOME/rdbms/public -L$ORACLE_HOME/lib -locci -lclntsh -lnnz12 -lons -lclntshcore

Здесь $ ORACLE_HOME - это переменная окружения, в основном установленная в переменной PATH, если вы используете Windows и bash_profile, если вы используете Linux.

Обычно он указывает на домашний каталог ORACLE

Ниже двух точек пути, где требуются заголовочные файлы для OCCI реализации присутствуют.

-I$ORACLE_HOME/precomp/public 
-I$ORACLE_HOME/rdbms/public 

Ниже приведены динамически связанные разделяемые библиотеки, необходимые для доступа к методам OCCI

-locci -lclntsh -lnnz12 -lons -lclntshcore

Ниже указан путь, где присутствуют разделяемые библиотеки.

-L$ORACLE_HOME/lib

Теперь вы пытаетесь реализовать их в Visual Studio, вам нужно настроить вышеописанные переменные в настройках вашего проекта в Visual Studio для их компиляции.

ПРИМЕЧАНИЕ. В вашем случае разделяемые библиотеки будут иметь вид .dll в виде это windows.

0 голосов
/ 27 марта 2020

Наконец, я мог бы включить OCI / OCCI API, но я все еще получаю некоторые ошибки ссылки.

Изображение кода

Это ошибка, когда я пытаюсь Создайте окружающую среду. Сам указатель не выдает никакой ошибки, это функция stati c. Кто-то знает, что я мог пропустить?

Изображение ошибки компоновщика

Что-нибудь помогает, спасибо!

...