Я могу подключить 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) Системе не удается найти текст сообщения для текста сообщения 0x80040e0 c в файле сообщений для OraOLEDB. 2) Иногда, в зависимости от итерации используемого мной соединения (IE соединение TNS), я получаю сообщение об ошибке прослушивателя TNS.
В настоящее время у меня включена библиотека объектов данных ActiveX 6.1. Кроме того, я нахожусь на 64-битной машине с установленным 64-битным Oracle клиентом. У меня 64-битный офис. Я совершенно уверен, что у меня также есть 64-битный ADO - мой ODA C (если он такой же) такой же, как и 64-битная онлайн-версия. У меня ODP. NET 2,12, а другой с 4,121 в реестре. У меня просто ODP. NET. Управляется 4.12.
Это не имеет особого смысла для меня, как на одном языке я могу соединиться без проблем, а на другом я не могу!