Почему в OraNet.dcu нет соответствующего файла.pas?
У меня есть связанный пост - Ошибка подтверждения в DBAccess.pas, но я подумал, что об этом стоит спросить отдельно.
У нас есть лицензия на полную версию исходного кода DevACt ODAC, но мы испытываем огромные трудности при обновлении. В ходе расследования я заметил, что для OraNet.dcu нет файла.pas.
Это затрудняет установление причины наших трудностей, поскольку мы не можем полностью отладить код.
Также - что это за блок? Исходя из его названия и директив в коде, было бы разумно предположить, что это обязательный модуль.NET, а не то, что нас интересует.
2 ответа
В модуле OraNet.dcu реализован режим прямого подключения к БД, и мы не распространяем исходный код этого модуля, это ограничение указано на нашем сайте (ссылка внизу страницы). Если вы не используете режим Direct и работаете через клиент Oracle (режим OCI), вы можете указать DEFINE NONET в настройках вашего проекта, в этом случае режим Direct будет недоступен, и этот модуль не будет используемый.
Использование клиента (даже Oracle Instant Client) действительно позволяет использовать больше функций, чем наш прямой режим, но в некоторых случаях прямой режим даже превосходит OCI по производительности. Кроме того, режим Direct значительно упрощает развертывание приложений и уменьшает размер приложений на диске из-за того, что нет необходимости предоставлять и развертывать дополнительные библиотеки, а также устанавливать дополнительные параметры реестра и переменные среды. Прямой режим также позволяет развертывать приложения в системах, для которых нет собственных клиентов Oracle, например, iOS. Выбор способа работы с БД (Direct или OCI) зависит от разработчика и задач, решаемых каждым конкретным приложением. Как было упомянуто выше, если прямой режим не используется, дополнительное подключение модуля можно отключить, установив DEFINE NONET