This project is read-only.

Acceso a Oracle mediante OraOleDB o MSDAORA

Topics: Attention VFPX Admins, Bug Information, General
Oct 20, 2011 at 11:03 PM
Edited Oct 21, 2011 at 12:39 AM

Buenas tardes

 

Tengo un equipo instalado con:

* Windows Vista Bussines

* Oracle Client 9.2   * Oracle ODAC 9.2.0.7

(Uso esta version porque me permite acceder a Bases de Datos TANTO en servidores Oracle 8 COMO Oracle 11)

utilizo TNSNAMES para acceder a ambos servidores, desde TOAD y funciona muy bien!

 

El problema es que con Visual Fox Pro no me permite acceder a los datos!!!

Aqui tengo el código que utilizo

********

 

lcConnString = "Provider=OraOLEDB.Oracle;Data Source=MYTNS;User ID=SCOTT;Password=TIGER;Persist Security Info=True"

loConnection= CreateObject("adodb.connection")	

TRY
	loConnection.Open(lcConnString )
	For Each Error In LoConnection.Errors
	   MESSAGEBOX(Error.Description,Error.Number)
	   return
	Next Error		
	
CATCH TO loError
  adoError = loError.Message
  MESSAGEBOX(adoError)
  RESULT = .F.
 release loRecordSet, loConnection, loCursorAdapter 
  
ENDTRY

 

*********

En la ejecucion, al momento de la instruccion.

Genera este error.

OLE IDispatch exception code 0 from OraOLEDB: ORA-12154: TNS:could not resolve service name.."

 

Si utilizo MSDAORA.1 como provedor. Sale otro error:

"La operación de múltiples pasos de OLE DB generó errores. Compruebe los valores de estado de OLE DB si es posible. No se realizó ningún trabajo."

 

Lo raro es que este mismo codigo, en un equipo con Windows XP, no da ningun problema.

Alguien me suguirio conseguir una DLL hecha con VB.NET que haga ese trabajo de acceso, pero no he encontrado nada aun...

 

No quiero usar ODBC, por lo que apreciaria cualquier consejo que me pudieran dar...

Gracias!

 

 

Oct 21, 2011 at 4:45 PM
Edited Oct 21, 2011 at 4:46 PM

Ya quedo...

Solucion:  

Solamente corregí el nombre de la conexion en  tnsnames.ora:  (en %ORACLEHOME/network/admin/)

Antes:

 

 

MYTNS =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = myservidor)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = DATOS)
    )
  )

 

 

Despues:

 

MYTNS.MYORG.ORG =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = myservidor)(PORT = 1522))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = DATOS)
    )
  )

 

 

Y no se porque,  ....  pero funciono!

 

Ojala esto le sirva de ayuda a alguien mas...