2013-10-07 3 views
0

Я пытаюсь подключиться к Oracle DB из моего Excel Macro. Этот макрос отлично работает, когда я запускаю его на ноутбуке с установленными компонентами Oracle. Когда я запускаю его на ноутбуке, у которого нет компонентов Oracle, он выдает сообщение об ошибке Could not connect to the database. Check your username and password. Oracle client and networking components were not found. These components are part of Oracle 7.3.3 or later client software installation.Невозможно выполнить макрос с ноутбука, у которого нет Oracle

Я пытаюсь подключиться к Oracle, используя следующие параметры: -

Dim dbConnect As ADODB.Connection 
Dim strUserName As String 
Dim strPassword As String 
Dim strDatabase As String 

Set dbConnect = New ADODB.Connection 

dbConnect.Open (_ 
"User ID=" & strUserName & "; Password=" & strPassword & "; Data Source=" & strDatabase & "; Provider=msdaora") 

Большинство наших пользователей не установлен Oracle.

+0

Загрузите пакет Oracle Instant Client отсюда: http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html распакуйте его и поместите в переменную% PATH%. – krokodilko

+0

разве не существует способа избежать загрузки этого пакета и обходить это сообщение об ошибке? Тогда это будет чертовски сложная задача установить его на всех компьютерах пользователей. – user2851053

+0

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

ответ

0

Вы не можете получить доступ к базе данных Oracle без соответствующих компонентов.

ADO is just a programming interface для доступа к различным поставщикам данных, поэтому это зависит от компонентов нижнего уровня.

Provider=msdaora параметр указывает "Microsoft OLE DB Provider for Oracle" и использует слой OLE DB для представления компонентов доступа к данным в качестве объектно-ориентированного API.

В свою очередь, OLE DB is just an object model, который представляет собой базовый уровень доступа к данным. В случае Oracle Database этот уровень представлен компонентами Oracle Client, поэтому вам нужно установить его, если вы хотите подключиться к Oracle.

Также обратите внимание, что поставщик MS OLE DB для Oracle have a number of limitations, outdated and not supported и использует очень старый интерфейс вызова OCI7.

Для упрощения развертывания вы можете использовать Oracle Data Access Components (ODAC) with Xcopy Deployment. Он весит менее 80 МБ и может быть развернут без запуска приложения Universal Installer. Как было отмечено в файле readme.txt он может быть установлен только в 3 этапа:

  1. Скачать ODAC (хсору версия) почтовый файл в каталог для постановки ODAC продукции.

  2. Unzip ODAC (версия xcopy) zip-файл для расширения содержимого.

  3. Выполнение install.bat для установки и настройки продуктов ODAC.

Этот компонент заменяет поставщика Microsoft OLE DB и уже содержит последнюю реализацию клиента Oracle, которые могут быть доступны из приложений Excel VBA (ищет строку подключения форматов here).

+0

Спасибо за информацию ThinkJEt, но я не думаю, что смогу загрузить и установить 80MB-файл на компьютере пользователя. Если мне нужно установить, я рассматриваю очень простой установщик. Могу ли я установить «Мгновенный клиентский пакет - Basic Lite» или «Мгновенный клиентский пакет - ODBC»? – user2851053

+0

@ user2851053 К сожалению, я не экспериментировал с такими типами установок, но, возможно, можно переупаковать эту установку для ваших собственных нужд, удалив библиотеки С ++ и файлы символов и добавив часть OLE DB из варианта установки Xcopy. OLE DB устанавливается только путем импорта настроек в реестр - проверьте configure.bat – ThinkJet

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