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

0

Я хочу получить данные из базы данных oracle из программы c++, можно ли мне предложить, какой вариант лучше

oracle call interface (OCI) или C/c++ pre-компилятор (Pro * C/c++), а также скажите мне разницу между ними. Спасибо.

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

  • 0
    OCI - это небольшая часть программного обеспечения, которое вы можете вызывать из своего собственного кода для связи с базой данных Oracle. Прекомпилятор является .... частью компилятора. Ваш вопрос - это как сказать, что вы хотите выпить, и вы должны использовать стакан воды или машину?
  • 0
    но вместо .c или .cpp файлов я могу написать .pc или .pcpp для подключения базы данных? мое требование - у меня есть файл с разделителем-запятой (разделитель может отличаться), и мне нужно извлечь файл и вставить в базу данных orcale? Какой вариант лучше использовать OCI в файле cpp или в файле .pc / .pcpp?
Показать ещё 1 комментарий
Теги:
proc
oci

1 ответ

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++.

Pro & Contra:

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню