for - oracle connection string example
Sintaxis de la cadena de conexión para Classic ADO/ODBC/Oracle 10g EZConnect (3)
Pruebe esto y reemplace los valores según corresponda:
Set Connection = CreateObject("ADODB.Connection")
blnTest = Connection.Open("Driver={Oracle in instantclient};Dbq=127.0.0.1:1521/SERVICENAMEHERE", "USERNAME", "PASSWORD")
Si Oracle en el cliente instantáneo no funciona, verifique la clave de registro HKEY_LOCAL_MACHINE / SOFTWARE / ODBC / ODBCINST.INI / ODBC Drivers para ver cuál es el valor de Oracle Instant Client (puede haber un número de versión adjunto).
Si esto aún no funciona para ti. Deja un comentario con los detalles de lo sucedido e intentaré ajustar la respuesta por ti.
Estoy intentando conectar varios proyectos de VBA a un back-end de Oracle 10g usando ADO (2.8) y sin TNS. Después de varios intentos, hemos decidido que la serie más simple de pasos para una instalación limpia incluye:
- Configurar un Oracle Instant Client
- Instale el controlador ODBC que lo acompaña
- (Pruebe la conexión usando EZCONNECT vía SQL Plus)
- (Pruebe la conexión creando un DSN de Windows)
Todo hasta aquí funciona bien. El problema es que no puedo entender la sintaxis para decirle a ADO que use el controlador ODBC instantáneo del cliente , que aparece en mi lista de controladores ODBC como "Oracle en MyTest" (sin comillas). Usar el controlador ODBC de MSFT con EZConnect como sugiere esta publicación no funciona mejor de lo que lo hacía antes de configurar el cliente instantáneo (es decir, no del todo). Pero esta publicación parece sugerir que es posible, sin indicar exactamente cómo, y connectionstrings.com solo le dice a qué se parece la porción del origen de datos de la cadena, es decir, SomeUser / SomePassword @ AServer: PortNumber / InstanceName
Versión corta: ¿Cuál es la sintaxis exacta de una cadena de conexión ADO clásica que hace referencia a un controlador ODBC de cliente instantáneo?
Gracias de antemano por tu ayuda. Me tomó un estúpido mucho tiempo para empezar con SO ...
Similar a la respuesta de ''user1206604''s - Configuré una conexión ODBC usando el Administrador de Fuente de Datos ODBC (por ejemplo, lo llamaremos'' DEMO '') y me conecto así:
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
El administrador de la fuente de datos ODBC se encuentra (en mi máquina) en el menú de inicio> Programas> Oracle - oraClient10g> Herramientas de configuración y migración> Administrador ODBC de Microsoft y se ve así:
'' 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