Синтаксис строки подключения для классического ADO / ODBC / Oracle 10g EZConnect - PullRequest
10 голосов
/ 03 августа 2010

Я пытаюсь подключить различные проекты VBA к серверной части Oracle 10g с помощью ADO (2.8) и без TNS.После различных попыток мы решили, что простейшая последовательность шагов для чистой установки включает:

  1. Настройка Oracle Instant Client
  2. Установка прилагаемого драйвера ODBC
  3. (тестирование соединения с помощью EZCONNECT через SQL Plus)
  4. (тестирование соединения с помощью создания DSN для Windows)

Все до этого работает нормально.Проблема в том, что я не могу понять синтаксис, чтобы указать ADO использовать мгновенный клиент драйвер ODBC, который отображается в моем списке драйверов ODBC как "Oracle in MyTest" (без кавычек).Использование драйвера MSFT ODBC с EZConnect в качестве , которое предлагает этот пост , работает не лучше, чем до установки мгновенного клиента (то есть, совсем).Но этот пост , кажется, предполагает, что это возможно, без точного указания как, а connectionstrings.com только говорит вам, как выглядит часть строки источника данных, т.е. SomeUser / SomePassword @ AServer: PortNumber / InstanceName

Короткая версия: Каков точный синтаксис классической строки подключения ADO, ссылающейся на драйвер ODBC для мгновенного клиента?

Заранее благодарим за помощь.Мне потребовалось немало времени, чтобы начать работать с ТАК ...

Ответы [ 3 ]

4 голосов
/ 06 июня 2012

Аналогично ответу 'user1206604 - я установил соединение ODBC с помощью администратора источников данных ODBC (например, назовем его' DEMO ') и подключился так:

Dim conn As New adodb.Connection
Set conn = New adodb.Connection

connStr = "Provider=OraOLEDB.Oracle;Data Source=DEMO;User Id=yourUserID;Password=yourPassword;"
conn.Open connStr

Dim api As New adodb.Recordset
Set api = New adodb.Recordset

yourQueryString = "SELECT foo FROM bar"
api.Open yourQueryString, conn, adOpenDynamic, adLockReadOnly 
'adjust above setting as needed

while not api.EOF
  'do interesting stuff here
wend

'clean up resources
api.Close
Set api = Nothing

conn.Close
Set conn = Nothing

Данные ODBCИсходный администратор находится (на моем компьютере) в меню Пуск> Программы> Oracle - oraClient10g> Инструменты настройки и миграции> Microsoft ODBC Administrator и выглядит так:

ODBC Data Source Administrator

3 голосов
/ 21 декабря 2011

Попробуйте это и замените значения соответствующим образом:

Set Connection = CreateObject("ADODB.Connection")

blnTest = Connection.Open("Driver={Oracle in instantclient};Dbq=127.0.0.1:1521/SERVICENAMEHERE", "USERNAME", "PASSWORD")

Если Oracle в InstantClient не работает, проверьте ключ реестра HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBCINST.INI \ ODBC Drivers, чтобы узнать, какое значение имеет Oracle Instant Client (может быть добавлен номер версии).

Если это все еще не работает для вас. Оставьте комментарий с подробностями произошедшего, и я постараюсь скорректировать ответ для вас.

0 голосов
/ 27 апреля 2012
' Create a connection object.'
Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

' Create a recordset object.'
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset

' Provide the connection string.'
Dim strConn As String
Dim str As String

'Use the SQL Server OLE DB Provider.'
strConn = "Driver=(Oracle in OraHome92);" & "Data Source=;Uid=;Pwd=;"

'Now open the connection.'
cn.Open strConn
With rs

    ' Assign the Connection object.'
    ActiveConnection = cn

    ' Extract the required records.'
    .Open "SELECT ", cn


End With
...