Подключить Oracle SQL к VBA

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

Для справки, это код Python для подключения:

cx_Oracle.connect(f'{self.user}/{self.pwd}@//{self.host}:{self.port}/{self.service_name}')

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

Sub CallDB_Return_Flexible(stSQL As String, rstStart As Range)

    Dim sqlConn As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim rtn As Boolean
    Dim cmd As New ADODB.Command
    Dim cs As String

    'On Error Resume Next
    Set sqlConn = New ADODB.Connection

    cs = "Provider=OraOLEDB.Oracle;User ID=myuserID;Password=myPsswd;Data Source=host:port/service_name;"
    sqlConn.ConnectionString = cs
    sqlConn.CommandTimeout = 10000
    sqlConn.Open

Я получаю следующие сообщения об ошибках: 1) Система не может найти текст сообщения для текста сообщения 0x80040e0c в файле сообщений для OraOLEDB. 2) Иногда, в зависимости от итерации используемого мной соединения (IE соединение TNS), я получаю сообщение об ошибке прослушивателя TNS.

В настоящее время у меня включена библиотека объектов данных ActiveX 6.1. Кроме того, я нахожусь на 64-битной машине с установленным 64-битным клиентом Oracle. У меня 64-битный офис. Я совершенно уверен, что у меня также есть 64-битная ADO - мой ODAC (если он такой же) такой же, как и 64-битная онлайн-версия. У меня в реестре стоит ODP.NET 2.12 и еще один - 4.121. У меня просто ODP.NET.Managed 4.12.

Для меня это не имеет большого смысла, как на одном языке я могу общаться без проблем, а на другом - нет!

1 ответ

Решение

Я тестировал более раннюю библиотеку данных ActiveX - это решило проблему.

Спасибо!!!!!

Другие вопросы по тегам