xHarbour + ADO + Oracle XE

Fórum sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

xHarbour + ADO + Oracle XE

Mensagem por alxsts »

Olá!

Algum dos amigos sabe se é possível usar este trio?

Adaptei um exemplo que vem na pasta xHarbour\Samples (abaixo) mas não funciona. Será que falta alguma lib?

Código: Selecionar todos

PROCEDURE Main()
   LOCAL cn, rs, oErr

altd()   
   TRY
      cn := CreateObject( "ADODB.Connection" )

      cn:ConnectionString := "Driver={Oracle in XEClient};dbq=localhost:1521/XE;Uid=system;Pwd=1001;"

      cn:Open()

      rs := CreateObject( "ADODB.Recordset" )
   
      rs:Open( "HR.Countries", cn, 0, 1, 2 )
   
      Do While ! rs:Eof()
        Alert( rs:Fields( "Country_Name" ):Value )
        rs:MoveNext()
      ENDDO
   
   CATCH oErr
      Alert( "Error: " + oErr:Operation + " -> " + oErr:Description )

      rs:Close()
      rs := Nil
   
      cn:Close()
      cn := Nil

   FINALLY
END
RETURN   
Grato
[]´s
Alexandre Santos (AlxSts)
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: xHarbour + ADO + Oracle XE

Mensagem por clrod »

Olá

xHarbour eu não sei, talvez com a RDDSQL paga. Em Harbour dá sim.

T+
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: xHarbour + ADO + Oracle XE

Mensagem por alxsts »

Olá!

Obrigado Cláudio.

Você já utilizou? Poderia fornecer um exemplo?
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: xHarbour + ADO + Oracle XE (Resolvido)

Mensagem por alxsts »

Olá!

Consegui resolver com exemplos obtidos através da busca do fórum.

Ficou assim:

Código: Selecionar todos

#include "ado.ch"

PROCEDURE Main()

   LOCAL oCn, oRs, oErr

   AltD()   

   TRY
      oCn := CreateObject( "ADODB.Connection" )

      oCn:ConnectionString := "Provider=OraOLEDB.Oracle;Data Source=XE;User ID=system;Password=abc100;FetchSize=100;CacheType=Memory;"

      oCn:Open()

      oRs := CreateObject("ADODB.RecordSet")

      With Object oRs
         :cursorType := adOpenDynamic 
         :activeConnection( oCn )
         :cursorLocation = adUseServer
         :maxRecords = 100000
         :cacheSize = 100
         :source := "SELECT ROWNUM AS REC, COUNTRY_ID, COUNTRY_NAME  FROM HR.Countries"

         //  ou troque as linhas:
         //    oRs:activeConnection( oCn )
         //    oRs:source := "SELECT ROWNUM AS REC, COUNTRY_ID, COUNTRY_NAME  FROM HR.Countries"
         //  por:
         //    oRs:open( "SELECT ROWNUM AS REC, COUNTRY_ID, COUNTRY_NAME  FROM HR.Countries", oCn ) 

         :open()
 
         :moveFirst()

         CLS

         Do While ! :eof()
           QOut( Transform( :Fields( "rec" ):value, "999" ), "-", ;
                 :Fields( "Country_id" ):Value, "-", ;
                 :Fields( "Country_Name" ):Value ) 
           :MoveNext()
         ENDDO

         :Close()
         oRs := Nil
      End   

      oCn:Close()
      oCn := Nil
   
   CATCH oErr
      Alert( "Error: " + oErr:Operation + " -> " + oErr:Description )
   END

   RETURN   
//--------------------------------------------------------------------------------
Tópicos que encontrei:
este, postado pelo Itamar M. Lins (o arquivo ADO.CH está neste tópico) e este postado pelos amigos Alexandre (asimoes) e Rodrigo (rodrmigu). Neste último, consta um link para o site da Oracle, com material relacionado.

Obrigado Cláudio (clrod)
[]´s
Alexandre Santos (AlxSts)
clrod
Usuário Nível 2
Usuário Nível 2
Mensagens: 79
Registrado em: 17 Nov 2009 13:42
Localização: São Paulo - SP

Re: xHarbour + ADO + Oracle XE

Mensagem por clrod »

Olá

Legal. Eu já tinha usado o ADO para testes mas nunca c/ Oracle.

T+
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: xHarbour + ADO + Oracle XE

Mensagem por alxsts »

Olá!

Na máquina onde o banco está instalado funciona legal.

Preciso que o aplicativo seja executado em outras máquinas, acessando este banco. Criei um ODBC numa máquina remota e até passou no teste de conexão. Só que o meu executável não conecta.

Seria problema de configuração de usuário no banco Oracle? Alguma idéia?
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: xHarbour + ADO + Oracle XE

Mensagem por sygecom »

Olá Alexandre,
Você tentou instalar o driver ODBC do Oracle para ver se resolve ?
http://support.microsoft.com/kb/175018/pt-br
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: xHarbour + ADO + Oracle XE

Mensagem por alxsts »

Olá Leonardo!

Grato por responder.

O driver está instalado. Criei o ODBC de sistema nas dua máquinas apontando para o Oracle XE. O teste de conexão na máquina cliente funciona. Mas o meu programa não. Faltou tempo para testar mais. Acho que é problema de permissão no próprio banco...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: xHarbour + ADO + Oracle XE

Mensagem por sygecom »

Olá Alexandre,
Pode ser que seja, o fato é estranho mesmo, até hoje só usei Oracle com SQLRDD que por sinal da um show em todos os SGBD que já usei e testei e no meu caso não precisa configurar nada de ODBC e etc.. Boa sorte.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder