Oracle con ADO

MarioDava
Posts: 18
Joined: Mon Jan 29, 2007 1:29 am

Post by MarioDava »

Manuel Valdenebro wrote:
MarioDava wrote:Gracias Manuel, finalmente pude hacer la conexión a Oracle vía ADO, tengo una pregunta que hacerte, has usado en tus querys en la clausula WHERE capos tipo fecha? y si es el caso, te funcionan bien, a mi no?
Mario,

Aquí estamos aprendiendo a "porrazos" y con la ayuda de todos. Por eso sería bueno nos comentaras como te has conectado, con que cadena de conexión.

En cuando al problema de las fecha, yo no tengo problemas. La siguiente consulta sobre la tabla EMPLOYEES la realiza correcamente:

select * from employees where LAST_NAME LIKE 'D%' AND hire_date > '01/01/1998'

¿Estas usando comillas dobles ó sencillas?
Manuel,

Entiendo lo del aprendizaje, por eso anexo lo siguiente:

La conexion a Oracle la hice así:

TRY
oCnx200:=toleauto():new("adodb.connection")
CATCH oError
MsgStop(oError:Operation,"Ado Connection")
END
TRY
oCnx200:ConnectionString:="Provider=OraOLEDB.Oracle;Data Source=200.160.1.220:1521/cbs;User ID=Mario;Password=MarioD;"
oCnx200:Open()
CATCH oError
MsgStop(oError:Operation,"Conexion con Oracle")
END

Ahora explico lo siguiente:

Para contar con el Povider native de oracle "Provider=OraOLEDB", instale el cliente de oracle para mi version que es la 10g.

Espero que esto les sea claro.

Y regresando al tema de la fecha anexo el select completo que uso:

oRs200:Source := oRs200:Open( "SELECT ev.resultmessage_id, (SELECT isymbol FROM tmessages WHERE id = ev.resultmessage_id) cCodigoError," + ;
"(SELECT nltext FROM tmessages WHERE id = ev.resultmessage_id)," + ;
"(SELECT cause FROM tmessages WHERE id = ev.resultmessage_id)," + ;
"(SELECT action FROM tmessages WHERE id = ev.resultmessage_id)," + ;
"COUNT(*) cuenta " + ;
"FROM trtechargableevents ev, trtedimensions dim WHERE ev.dimension_id = dim.id AND ev.eventbegindate >= '" + dtoc( dFecIni ) + ;
"' AND ev.eventbegindate < '" + dtoc( dFecFin ) + "' AND ev.resultmessage_id IS NOT NULL GROUP BY dim.datatype_id, ev.resultmessage_id ORDER BY 1, 2"

Saludos,
Mario A. Dávalos
Yessica
Posts: 78
Joined: Thu May 28, 2009 6:58 pm

Re:

Post by Yessica »

metaldrummer wrote:Sebastian:
Dame un correo donde enviarte un ejemplo.
La idea es que te olvides del concepto de .dbf
Yo por lo menos trabajo con ADO duro y puro y no tengo problemas.
Saludos
David

David buenas tardes, he leído tus mensajes, sabes estoy por migrar la base de datos (AD's Advantage Tablas .ADT) para Oracle, pero sabes tenemos tantas dudas, ojalá y puedas ayudarme.

¿La primera es como convive Five-win con ese motor?

¿Tengo que cambiar mi forma de conectarme a la base de datos?

¿como usar cada tabla?

Comentas que tienes ejemplos de conexion con ADO, Ojalá y pudieras compartir tu conocimiento, pues estamos a punto de realizar la migración y vamos a enfrentarnos a muchas cosas desconocidas.

Gracias.
LuchoMontero
Posts: 13
Joined: Mon Jul 16, 2012 10:31 am
Location: Lima, Perú
Contact:

Re:

Post by LuchoMontero »

metaldrummer wrote:Sebastian:
Dame un correo donde enviarte un ejemplo.
La idea es que te olvides del concepto de .dbf
Yo por lo menos trabajo con ADO duro y puro y no tengo problemas.
Saludos
David
Hola David:
Disculpa que interrumpa este topic, el asunto es que estoy trabajando con Ado y necesito de tu ayuda, pues estoy accesando a una BD de Progress.
En cuanto a la conexion a la BD no tengo problemas pues es rápida, el tema viene por las consultas se tardan mucho.
Te paso este topic en donde estoy detallando el tema.
http://forums.fivetechsupport.com/viewt ... =6&t=30937

Agradecería mucho tu ayuda.


Saludos.
Atte.
Lucho Montero.
FGamboa
Posts: 25
Joined: Wed Apr 12, 2006 1:51 am

Re: Oracle con ADO

Post by FGamboa »

Hola a todos:
por favor Alguién que quiera ase$$$$orame con este tema.
contácteme.

Fco. Gamboa
fgamboa@prodigy.net.m
fcogamo@hotmail.com
fcogamo@gmail.com
User avatar
Rick Lipkin
Posts: 2397
Joined: Fri Oct 07, 2005 1:50 pm
Location: Columbia, South Carolina USA

Re: Oracle con ADO

Post by Rick Lipkin »

To All

Sorry I am only reading this post at this late stage .. With Oracle you will need to download the latest Oracle Provider for Oledb :
http://www.oracle.com/technetwork/datab ... 89115.html

Once you have downloaded the client you will need to configure Tnsnames.ora and Sqlnet.ora specific to your Oracle Database .. Here is a sample working code from Oracle 10g some years ago ..

Rick Lipkin

Code: Select all

   xPROVIDER := "OraOledb.oracle"
   xSOURCE   := "yourdatabase"
   xUSERID   := "xxxxxxxxx"
   xPASSWORD := "xxxxxxxxx"

   cSQL := "SELECT * from EMPLOYEE order by SSN"

   oRs := TOleAuto():New( "ADODB.Recordset" )
   oRs:CursorType     := 1        // opendkeyset
   oRs:CursorLocation := 3        // local cache
   oRs:LockType       := 3        // lockoportunistic

   TRY
      oRs:Open(cSQL,'Provider='+xPROVIDER+';Data Source='+xSOURCE+';User Id='+xUSERID+';Password='+xPASSWORD )
   CATCH oErr
      MsgInfo( "Error in Opening EMPLOYEE table" )
      RETURN(.F.)
   END TRY

   IF oRs:EOF
      SAYING := "Could not find any matching records"
      MsgInfo( SAYING )
      RETURN(.F.)
   ENDIF

   oRs:CLose()
 

Since this code was written .. I would ( today ) have created a Global oCn connection based on the above parameters and passed it to the Recordset ..

Rick Lipkin
FGamboa
Posts: 25
Joined: Wed Apr 12, 2006 1:51 am

Re: Oracle con ADO

Post by FGamboa »

Thanks mainly to Richard Lipkin and Armando Estrada:
My problem was solved.
1.- Oracle is at least five times complicated than other adodb connections I known.
2.- I Was trying to work with 32 bits client to 64 bits Oracle Server and ODBC drivers and connections has a big issue.
3.- I was expecting to make a single adodb with connection string and it was hard to me...

Oracle Client has several parts, I needed to struggle to finally get (for 32 bits):
Instant client BASIC
instant Client Package - ODBC:
join in a single folder.
call Install_odbc (with no response of success or failure).
modify windows path variable to include the folder created before.
check the odbc controlers to make sure there is an "Oracle in InstantClient_12_2"

and Voila !
cCon:="Driver=Oracle in Instantclient_12_2;dbq=localhost:1521/XE; Uid=hr;Pwd=hr" // Adodb using ODBC
HB_SETCODEPAGE("ESMWIN") to void Ñs and specail char issues.

Thank You again and regards
FGamboa
Posts: 25
Joined: Wed Apr 12, 2006 1:51 am

Re: Oracle con ADO

Post by FGamboa »

I forgot to mention:
Set Manually an enviroment variable NLS_LANG with proper values, in my case:
set NLS_LANG = MEXICAN SPANISH_MEXICO.WE8MSWIN1252
acording to documentation awares oracle what kind of information would expect

Regards
Post Reply