net for example conexion cadena oracle vba excel-vba ado access-vba

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:

  1. Configurar un Oracle Instant Client
  2. Instale el controlador ODBC que lo acompaña
  3. (Pruebe la conexión usando EZCONNECT vía SQL Plus)
  4. (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