развернуть приложение с провайдером OraOLEDB

Я разработал приложение, которое использует Delphi 7, ADO и ORACLE, поставщиком, который я использую, является OraOLEDB (мне нужно использовать этот поставщик, потому что поддерживаются поля BLOB). теперь хочу раздать это приложение с провайдером. Я ищу в Интернете, чтобы загрузить поставщика Oracle, но имеет размер 174 МБ. Мне нужно установить этот файл на все клиентские машины? есть меньшая раздача этого файла?

ОБНОВЛЕНИЕ Я ищу легкий (небольшой) дистрибутив OraOLEDB.

Заранее спасибо.


person Salvador    schedule 01.02.2010    source источник
comment
Если ваши клиенты уже являются пользователями Oracle, будет ли у них уже установлен клиент Oracle? Если да, то, вероятно, вам больше нечего будет устанавливать.   -  person Scott W    schedule 01.02.2010
comment
@Scott Поставщик OleDB Oracle не является частью стандартной установки Oracle Client. Вот в чем проблема.   -  person Arnaud Bouchez    schedule 10.07.2011


Ответы (5)


Я бы предпочел, чтобы пользователь сам предоставил свою клиентскую библиотеку. Вы избегаете проблем, когда могут быть разные версии Oracle OleDb для разных версий Oracle, проблемы с лицензированием, проблемы с установкой и т. д. и т. д.

Насколько я знаю, вам нужен пакет 170 МБ+.

person Ritsaert Hornstra    schedule 01.02.2010

Похоже, лицензия на распространение (http://www.oracle.com/technology/software/popup-license/distribution-license.html) с этой страницы позволяет вам повторно распространять драйвер OleDB, если вы полностью соответствуете этой лицензии. Это официальный дистрибутив Oracle - обычно установки Oracle большие - если вы не хотите включать их в свой дистрибутив, вы можете просто указать их на странице загрузки.

Обновление: на странице загрузки InstanClient есть меньший пакет, ищите Instant Client Package — ODAC здесь: http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/winsoft.html

person Community    schedule 02.02.2010
comment
Я действительно уверен в этом, я ищу легкий дистрибутив OraOLEDB. - person Salvador; 07.02.2010
comment
Когда кто-то пытается помочь, вы можете взглянуть на ответ и, возможно, принять его. - person ; 17.02.2010

Я немного разбираюсь в установке провайдеров OLE DB, но ничего не знаю о провайдере Oracle, поэтому это может оказаться непрактичным. Я вижу, что загрузка объемом 174 МБ включает в себя ряд драйверов (ODBC, .NET, OLE DB и т. д.). У меня должна быть возможность (но, возможно, бесполезная в реальном мире) создать свой собственный дистрибутив с необходимыми файлами. Одна очень приятная особенность OLE DB заключается в том, что ее обычно «просто» установить. Запуск regsvr32 /i provider.dll сделает необходимые обновления реестра, чтобы его можно было использовать в системе. Провайдеры, которые я использовал, не требуют большого количества обращений к реестру, как это часто требуется драйверам ODBC.

Так что можно создать свой собственный дистрибутив. На этом сайте перечислены файлы, которые, по-видимому, необходимо провайдеру. Я не знаю, существуют ли какие-либо другие "общие" файлы, общие для всех клиентских наборов Oracle, которые могут быть необходимы (возможно, это та часть, которая делает эту идею непрактичной).

person Mark Wilkins    schedule 13.02.2010
comment
Я думаю, что это правильное направление для облегченного поставщика OLEDB. - person Arnaud Bouchez; 10.07.2011

Это основная проблема при разработке для Oracle, за исключением случаев, когда вы используете ODAC, который имеет прямое подключение к oracle, без установки клиента oracle на клиентские машины.

и это намного быстрее, чем использование поставщиков ADO или OLE DB.

person Mohammed Nasman    schedule 02.02.2010
comment
Спасибо за рекомендацию, но мне нужно использовать ADO, а не другую технологию. - person Salvador; 07.02.2010
comment
Прямое подключение SQL *Net быстрее не требуется, потому что Oracle OCI очень оптимизирован и работает близко к механизму БД, и ему не хватает некоторых дополнительных функций, таких как кэширование запросов на стороне клиента. Например, наша оболочка OCI работает в 2–5 раз быстрее, чем версия, использующая поставщиков OleDB/ADO. - person Arnaud Bouchez; 10.07.2011
comment
@A.Bouchez, я имел в виду быстрее, потому что он обходит слой ado и oledb. не потому, что он использует оракул без OCI. - person Mohammed Nasman; 10.07.2011

Распространение клиентского приложения Oracle может стать кошмаром, особенно сегодня, когда у вас 64-битная Windows.

Какую версию клиента вам нужно будет установить? Вам нужна 32-битная версия вашего приложения Delphi. Но что, если другим программам нужен доступ к 64-битной версии? Вам нужно несколько ORACLE_HOME с дублированными настройками или заставить ваш код DotNet работать в 32-битном режиме.

Сначала я написал оболочка Delphi с использованием OleDB, то я понял, насколько сложно было развернуть ее при использовании Oracle DB. Точно такая же проблема, как у вас...

Затем я написал специальную версию, прямой вызов библиотеки OCI. Была скорость (в 2-5 раз выше, чем у OleDB) и простота развертывания.

Вы можете использовать последнюю версию Oracle Instant Client, предоставленную Oracle — см. эта ссылка для скачивания, которая позволяет запускать ваши приложения без установки стандартного (огромного) клиента Oracle или наличия ORACLE_HOME. Просто доставьте файлы dll в тот же каталог, что и ваше приложение, и все заработает.

Недостатком этого решения является то, что оно несовместимо с компонентами, поддерживающими БД. Но если вы используете TQuery напрямую, а затем сопоставляете результаты с классами Delphi, это может быть отличным решением.

person Arnaud Bouchez    schedule 10.07.2011