Где я должен поместить код, который вызывает Oracle OCI?

Я хочу получить данные из базы данных Oracle из программы на C ++. Можно ли мне предложить, какой вариант лучше?

интерфейс вызова оракула (OCI) или прекомпилятор C / C ++ (Pro * C / C ++), а также подскажите разницу между ними. Спасибо.

Редактировать из комментариев:
Должен ли я поместить код вызова OCI в файлы .cpp или файлы PreCompiler (.pc / .pcpp)?

0

Решение

Сначала объяснение обоих вариантов:

  • Pro * C / C ++ позволяет вам писать операторы SQL непосредственно в коде C / C ++, как если бы язык был расширен за счет новых ключевых слов, таких как SELECT и INSERT. Так же, как ABAP или Linq. Этот эффект достигается путем предварительной обработки вашей смеси встроенного SQL и C / C ++ с помощью так называемого прекомпилятора. Он перевел весь этот встроенный SQL во множество кода на C, который вызывает внутреннюю библиотеку Oracle с именем «SQLLIB». В результате получается простой код C / C ++, который может быть передан в ваш стандартный компилятор C / C ++.
  • OCI — это просто интерфейс C / API, который вызывается из кода C / C ++. Никакой магии предварительной обработки, просто C / C ++.

профессионал & Contra:

  • Встроенный SQL делает SQL легко читаемым и уменьшает объем кода для записи. Весь этот повторяющийся шаблонный код скрыт прекомпилятором. Это мило. Но прекомпилятор вводит новый этап сборки с новыми проблемами: например, прекомпилятор ожидает встроенный SQL в определенном порядке в одном файле. Обычный C позволит разделить его и переместить функции. Встроенный SQL вводит новые языковые правила, которым нужно подчиняться.
  • Нет более быстрого способа доступа к БД, чем OCI. Я предполагаю, что SQLLIB вызывает OCI, но это означает, что у вас есть еще одно косвенное обращение к OCI. Это простой C API, никаких новых языковых правил для изучения. Но это скрывает SQL в вызовах функций и весь этот синтаксис Си.

Что лучше? Это зависит.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector