2010-02-01 4 views
2

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

ОБНОВЛЕНИЕ Я ищу легкую раздачу OraOLEDB.

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

+0

Если ваши клиенты уже являются пользователями Oracle, у них уже будет установлен клиент Oracle? Если это так, то, вероятно, не будет ничего другого для вас. –

+0

@Scott Поставщик Oracle OleDB не входит в стандартную настройку Oracle Client. Это проблема. –

ответ

3

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

Как я знаю, вам нужен пакет 170 МБ +.

1

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

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

+0

Я верю, что, я смотрю светлое распределение OraOLEDB. – Salvador

+0

Посмотрите мое обновление, этот пакет представляет собой файл размером 45 мб. – 2010-02-09 20:23:13

+0

Когда кто-то пытается помочь вам, вы можете взглянуть на ответ и, возможно, принять его. – 2010-02-17 11:35:38

0

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

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

+0

Спасибо за рекомендацию, но мне нужно использовать ADO, а не другую технологию. – Salvador

+0

Прямое соединение SQL * Net не требуется быстрее, потому что OCI Oracle оптимизирован и работает близко к движку БД, и ему не хватает некоторых дополнительных функций, таких как кеширование запросов на стороне клиента. Например, наша оболочка OCI в 2-5 раз быстрее, чем версия, использующая поставщиков OleDB/ADO. –

+0

@ A.Bouchez, я имел в виду быстрее, потому что он обходит слой ado и oledb. не потому, что использует оракул без OCI. –

1

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

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

+0

Я думаю, что это правильное направление для слабо взвешенного поставщика OLEDB. –

0

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

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

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

Затем я написал dedicated version, calling directly the OCI library. Скорость была там (в 2-5 раз быстрее, чем OleDB), с легким развертыванием.

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^