harbour x firebird?

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

Moderador: Moderadores

pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

harbour x firebird?

Mensagem por pena »

bom dia pessoal, gostaria de migrar dbf para firebird, alguem teria um exemplo de como fazer a conexão? Alem do firebird, o que mais preciso instalar para funcionar, exemplo de codigo eu baixei um no grupo, mas ele nao conecta, alguem poderia me dar uma mão?
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: harbour x firebird?

Mensagem por DLZ »

Ola meu amigo..
Tenho muito interesse nesse assunto tb.. testei a lib que vem junto na contrib do Harbour, mas não funciona !!
Se vc tiver algum sucesso com alguma ferramente, por favor, faça contato..
obrigado
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: harbour x firebird?

Mensagem por gvc »

Tem uma lib na contrib do xHarbour que acessa o FB.
Vc pode procurar aqui no forum sobre o ADORDD para acessar.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
jamazevedo
Usuário Nível 3
Usuário Nível 3
Mensagens: 122
Registrado em: 29 Dez 2005 16:50
Localização: Manaus - AM

Re: harbour x firebird?

Mensagem por jamazevedo »

Minhas configurações:
Ubuntu 10.04
Harbour 2.1.0Beta 2 (Rev. 14955)

- Estou usando MySQL que está na pasta contrib lá também tem exemplos para Firebird mas não utilizei.
- Antes de utilizar o MySQL com harbour precisei fazer umas configurações em minha máquina como por exemplo:
- sudo install apt-get install mysql-server mysql-client libmysqlclient15-dev isso vai baixar, instalar e configurar o MySQL em minha máquina, depois montei o programa abaixo, ele é muito simples: faz a conexão com o MySQL, mostras os bancos existentes, abre o banco mysql e lista os usuários.
- Acredito que com o exemplo abaixo é possível fazer uma análogo para o Firebird.

Programa: exemplo.prg

Código: Selecionar todos

#DEFINE id_SERVER   "localhost"
#DEFINE id_USER     "root"
#DEFINE id_PASSWORD "123"
FUNCTION  Main()
          LOCAL oServer     := TMySQLServer():New( id_SERVER, id_USER, id_PASSWORD )
          LOCAL oBancoDados , oTabela , oRow
          LOCAL nConta1 , nConta2 , nConta3
          LOCAL nLen1   , nLen2   , nLen3
          oBancoDados := oServer:Query( "SHOW DATABASES;" )
          IF oBancoDados:NetErr()
             ALERT( oBancoDados:Error() )
          ELSE
             nLen1 := oBancoDados:LastRec()
             FOR nConta1 = 1 TO nLen1
                 oRow := oBancoDados:GetRow( nConta1 )
                 ? oRow:FieldGet( 1 )
             NEXT
             oTabela := oServer:Query( "SELECT * FROM mysql.user;" )
             IF oTabela:NetErr()
                ALERT( oTabela:Error() )
             ELSE
                nLen2 := oTabela:LastRec()
                FOR nConta2 = 1 TO nLen2
                    oRow := oTabela:GetRow( nConta2 )
                    ? oRow:FieldGet( 1 ) , oRow:FieldGet( 2 )
                NEXT
             ENDIF
          ENDIF
          oTabela:Destroy()
          oBancoDados:Destroy()
          oServer:Destroy()
RETURN    NIL
Arquivo para compilar: exemplo.hbp

Código: Selecionar todos

# compila so os alterados
-inc
-w1
-lhbmysql
-lmysqlclient
# nome do executavel
-oexemplo
# fontes que serao compilados e lincados
exemplosql.prg
______________________________________________________
Usando: Linux Ubuntu 18.04, Harbour 3.2.0dev r1811161533
______________________________________________________
José Airton de Menezes Azevedo
Manaus - AM
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: harbour x firebird?

Mensagem por DLZ »

Já fiz testes com a lib da pasta Contrib do Xharbour, mas fui aconselhado a não usar, pois essa lib foi descontinuada !
Qtdo ao ADORDD, parece ser uma maravilha, mas não é free !
Ainda procuro uma solução para usar Firebird no Xharbour !
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: harbour x firebird?

Mensagem por gvc »

Desculpe, mas o ADORDD é free. Vc deve estar confundindo com alguma lib.
O Linhares desenvolveu e liberou para a comunidade. Depois é que ele parou de desenvolver recursos, mas os fontes estão disponíveis inclusive aqui no forum.
A recomendação é vc compilar os fontes junto com a sua aplicação.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

Re: harbour x firebird?

Mensagem por pena »

pessoal ja funcionando, quem quiser uma mao, estou a disposicao
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: harbour x firebird?

Mensagem por gvc »

Poste a solução que vc adotou e um exemplo para ajudar os colegas do forum.
Dai quem precisar, se houver dúvidas, vai pedir sua ajuda.
Ah! Parabens por conseguir fazer funcionar.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: harbour x firebird?

Mensagem por DLZ »

Ola..
recebi um exemplo para testes, um tal de AgendaFB
baseado nele fiz um programa para teste.
Segue abaixo:

Código: Selecionar todos

#Include "Adodb.ch"
FUNCTION MAIN()
SET DATE BRIT 
SET CENTURY ON
SET EPOCH TO 1960
SET CONFIRM ON
SETMODE(25,80)
CLEAR
Public CNN
PUBLIC E
BEGIN SEQUENCE
  CNN:=CreateObject("ADODB.Connection")
  CNN:Open("DRIVER=Firebird/InterBase(r) driver;Password=1;Persist Security Info=True;User ID=PRATIC;Location=C:\PRATIC\PRATIC.FDB;ctype=ISO8859_1;auto_commit=True;dbclient_library=fbclient.dll")
 RECOVER USING E
   ALERT("Operação: "+E:operation+"-"+"Descrição: "+E:Description) // +chr(10)+vMat(e:Args))
   RETURN
end  
RETURN
Compilei usando Xharbour 1.0 e Hbmake e ocorre o seguinte erro:
Error: Unresolved external '_HB_FUN_HB_GT_GUI_DEFAULT' referenced from C:\XHARBOUR\FIREBIRD\AGENDAFB\TESTE.OBJ
também tive que substituir o Try Catch por Begin Sequence Recover..
e agora ? o q eu faço ?
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: harbour x firebird?

Mensagem por DLZ »

Ola..
Fiquei surpreso quando vi que passou tanto tempo e ninguém respondeu meu post, mas sou teimoso, mais eu alemão eheheh
bem, durante todo esse tempo que fiquei esperando uma ajuda, fiquei "procurando ninho de cavalo" e fiz um pequeno progresso..
Agora estou com outro erro, com o programa abaixo..

Código: Selecionar todos

FUNCTION MAIN()
SET DATE BRIT 
SET CENTURY ON
SET EPOCH TO 1960
SET CONFIRM ON
SETMODE(25,80)
CLEAR
Public CNN
PUBLIC E
PUBLIC oCursor
TRY 
  CNN:=CreateObject("ADODB.Connection")
  CNN:Open("Provider=LCPI.IBProvider.3;Password=1;Persist Security Info=True;User    ID=PRATIC;Location=C:\PRATIC\PRATIC.FDB;ctype=ISO8859_1;auto_commit=True;dbclient_library=fbclient.dll")
CATCH E
  ALERT("Operação: "+E:operation+"-"+"Descrição: "+E:Description+chr(10) /*+vMat(e:Args)*/)
END 

    Try
      oCursor:=CreateObject("ADODB.Recordset")
    Catch e
      ALERT("Operação: "+E:operation+"-"+"Descrição: "+E:Description+chr(10) /*+vMat(e:Args)*/)
    end

    oCursor:Open("Select * from Cadmun where Munic=1",CNN,2,3)

    Do While ! oCursor:Eof()
       @ 10,10 say oCursor:Fields["Munic"]:Value
       @ 11,10 say oCursor:Fields["Nome"]:Value
       inkey(0)
       oCursor:MoveNext()
    enddo
O que fez o erro anteriormente postado parar de ocorrer, foi tirar o Include ADODB.CH do início do programa.

Agora o erro que ocorre é o seguinte..
no CNN:OPEN() da o seguinte erro: S_OK
Isso signifca que a conexão com o banco deu certo ? se deu certo, pq cai no Catch ? não deveria caie no Catch só qdo da algum erro ?

Seguindo o programa , da erro no comando:
oCursor:Open("Select * from Cadmun where Munic=1",CNN,2,3)
Error ADODB.Recordset/6 DISP_E_UNKNOWNNAME

OBS: A tabela Cadmun existe no banco PRATIC.FDB e nessa tabela existe o campo Munic que é do tipo Inteiro:

O que pode estar ocorrendo agora ?
Será que é mesmo possível usar Firebird com Xharbour ?
Aguardo alguma luz !!
Obrigado
pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

Re: harbour x firebird?

Mensagem por pena »

tenho os fontes de um sistema simples que o pessoal usa em uma autopeças, eu utilizava dbf, e fui migrando ele para firebird, ele ja funciona td perfeitamente, apenas nao conclui todos os processos por falta de tempo, e tinha outras prioridades, no seu caso, sera que esta utilizando a versao correta? se caso quiser posso passar meus fontes, so que eu estou usando a minigui.
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: harbour x firebird?

Mensagem por DLZ »

ola.. obrigado por responder..
Versão correta do que ? Do Firebird ?
Estou usando a versão mais atual 2.5 final

outra coisa.. compilei o exemplo Agenda2.prg e da o mesmo erro no open do AdoDb.Connection (S_ok)

o ADO funciona somente para Firebird 1.5 ?
Pena !! qual a versão do Firebird que vc usa ?
pena
Usuário Nível 3
Usuário Nível 3
Mensagens: 331
Registrado em: 06 Jul 2004 18:08
Localização: CACHOEIRA DO SUL-RS

Re: harbour x firebird?

Mensagem por pena »

sim, falei da versao do firebird, eu utilizo a 2.5 tb, e o primeiro programa que usei para testes foi o agenda2, porem hj eu faço a conexão um pouco diferente, mas em resumo é igual.

Código: Selecionar todos

Public ecfpoucopapel, sistema,mconsulta,cnn,CUSER:="SYSDBA",cpassword:="masterkey",caddress:="Localhost",cdatabase:=BASEDEDADOS()+"BANCO.FDB"

       Try
          CNN:=CreateObject("ADODB.Connection")
          cStringConnection := "DRIVER=Firebird/InterBase(r) driver; UID="+cUser+"; PWD="+cPassword+";DBNAME="+cAddress+":"+cDataBase
          CNN:Open(cStringConnection)
       Catch e
          MsgStop("Não foi possivel conectar com o banco")
          MsgStop("Operação: "+E:operation+"-"+"Descrição: "+E:Description+chr(10)+vMat(e:Args))
          ExitProcess(0)
       End
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: harbour x firebird?

Mensagem por DLZ »

Bom dia.
Poxa vida Pena, é a mesma coisa que tenho aqui, só que da o erro S_ok !!
não entendo pq não funciona.. será que só funciona com minigui ? não funciona em modo Console ?
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: harbour x firebird?

Mensagem por DLZ »

Complilei com Minigui tb, mas da o mesmo problema !!
o q significa o erro que retonra ? s_ok ??
Pena, vc tem msn, skype ou alguma coisa que a gente possa fazer contato..
acho impossível que pra ti funcione e pra mim não !!
Responder