Подключить 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 - это решило проблему.
Спасибо!!!!!