Подключиться к базе данных Oracle из приложения VB 2008 без установки программного обеспечения Oracle?

Imports System.Data.OleDb

Public Class Log

    Private mConnectionString As String = "Provider=OraOLEDB.Oracle;Data Source=(DESCRIPTION=(CID=GTU_APP)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))(CONNECT_DATA=(SID=xxx)(SERVER=DEDICATED)));User Id=xxx;Password=xxx;"
    Dim ds As New DataSet
    Dim da As New OleDbDataAdapter
    Dim dr As DataRow
    Dim Connection As New OleDbConnection(mConnectionString)
    Dim Command As OleDbCommand
    goes on...

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

Теперь я знаю, что могу установить провайдеров Oracle на эти другие машины, и это будет работать. Проблема в том, что A) их много и B) мне нужно пройти через наш отдел ИТ, и им потребуется шесть месяцев, чтобы это сделать. Итак, мой вопрос, могу ли я подключиться к этой базе данных Oracle с компьютера без установленных провайдеров Oracle? Я думал, что у Microsoft есть собственный поставщик Oracle, но он не отображается в System.Data. Версия .NET 3.5, если это помогает. Любые идеи?

12.12.2008 20:50:27
4 ОТВЕТА
РЕШЕНИЕ

Мне очень повезло с Oracle Instant Client и ODP.NET , который в значительной степени прост в развертывании XCOPY (если вам не нужен ODBC).

IIRC, вам нужно изменить переменную окружения PATH, но это относительно безболезненно - особенно по сравнению с обручами, которые Oracle использовал для перехода.

6
12.12.2008 21:07:01

Я почти уверен, что вам нужно установить провайдера Oracle, чтобы это работало. OleDb может легко подключаться к SQL Server и Access и т. Д., Но только потому, что эти поставщики предварительно установлены в Windows.

Я думаю, что ваш единственный вариант (кроме установки провайдера Oracle на каждом компьютере) - создать «переднюю» базу данных SQL Server, которая включает в себя транзитные таблицы для каждой нужной вам таблицы Oracle, а затем получать данные из SQL Server вместо Oracle ,

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

0
12.12.2008 20:58:48

Можно ли найти и включить DLL-библиотеки Oracle в ваше приложение вместо их установки?

0
12.12.2008 21:01:27
Я так не думаю. Если память мне не изменяет, клиент Oracle все еще должен быть установлен.
jwalkerjr 12.12.2008 21:03:12
Нет, это возможно, но очень сложно понять, какие библиотеки DLL вам нужны и куда их нужно поместить. Обычно проще просто запустить установщик Oracle и покончить с этим, за исключением того, что обычно это файл размером 500-600 МБ, по крайней мере.
MusiGenesis 12.12.2008 22:16:39
Я прошел аналогичный процесс с Oracle Lite, потому что у нас не могло быть людей, загружающих 500 МБ установщик из Интернета. Наша урезанная версия была 3 МБ.
MusiGenesis 12.12.2008 22:19:08

Проблема в том, что на самом деле вы начали проект, не обсуждая инфраструктурные потребности с командой IT / DBA вашей компании. Это не техническая проблема, а проблема процесса.

Это, как говорится здесь, является возможным решением (хотя я не использовал лично). http://devart.com/dotconnect/oracle/

1
12.12.2008 21:04:04