Clipper On Line • Ver Tópico - harbour x firebird?
Página 1 de 2

harbour x firebird?

MensagemEnviado: 13 Out 2010 10:17
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?

Re: harbour x firebird?

MensagemEnviado: 14 Out 2010 10:31
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

Re: harbour x firebird?

MensagemEnviado: 14 Out 2010 12:29
por gvc
Tem uma lib na contrib do xHarbour que acessa o FB.
Vc pode procurar aqui no forum sobre o ADORDD para acessar.

Re: harbour x firebird?

MensagemEnviado: 14 Out 2010 15:13
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
#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
# compila so os alterados
-inc
-w1
-lhbmysql
-lmysqlclient
# nome do executavel
-oexemplo
# fontes que serao compilados e lincados
exemplosql.prg

Re: harbour x firebird?

MensagemEnviado: 15 Out 2010 08:32
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 !

Re: harbour x firebird?

MensagemEnviado: 15 Out 2010 09:41
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.

Re: harbour x firebird?

MensagemEnviado: 15 Out 2010 19:41
por pena
pessoal ja funcionando, quem quiser uma mao, estou a disposicao

Re: harbour x firebird?

MensagemEnviado: 17 Out 2010 08:55
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.

Re: harbour x firebird?

MensagemEnviado: 19 Out 2010 14:15
por DLZ
Ola..
recebi um exemplo para testes, um tal de AgendaFB
baseado nele fiz um programa para teste.
Segue abaixo:
#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 ?

Re: harbour x firebird?

MensagemEnviado: 21 Dez 2010 12:10
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..
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

Re: harbour x firebird?

MensagemEnviado: 21 Dez 2010 12:45
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.

Re: harbour x firebird?

MensagemEnviado: 21 Dez 2010 12:53
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 ?

Re: harbour x firebird?

MensagemEnviado: 22 Dez 2010 07:34
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.

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

Re: harbour x firebird?

MensagemEnviado: 22 Dez 2010 07:57
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 ?

Re: harbour x firebird?

MensagemEnviado: 22 Dez 2010 08:11
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 !!

Re: harbour x firebird?

MensagemEnviado: 22 Dez 2010 12:06
por sygecom
Já tentou instalar os drivers do ODBC do Firebird. Em anexo um que uso em conjunto com SQLEX

Re: harbour x firebird?

MensagemEnviado: 22 Dez 2010 12:42
por DLZ
Caraaaaca.. Era isso mesmo!!
Nem sabia que existia esse driver.. Pensei que fosse só ter o Firebird instalado na máquina que já ia conseguir ler !!
Vleu Leo..
Só fiquei com uma dúvida.. Esse driver ODBC ai é do Firebird 2.0 ? Ou não tem nada a ver ? Eu uso o 2.5 !

Re: harbour x firebird?

MensagemEnviado: 22 Dez 2010 14:54
por sygecom
Esse 2.0 é a versão do DRIVER, mas eu uso aqui com Firebird 2.5 + SQLEX sem problema algum.
Apenas certifiques-se para que todas as maquinas que forem rodar seu aplicativo tenha esse driver instalado. (não resolve instalar apenas no servidor, no servidor fica apenas a instalação do Firebird)

harbour x firebird?

MensagemEnviado: 05 Ago 2019 19:33
por Itamar M. Lins Jr.
Ola!
Pensei aqui, li outras coisas "acolá", mas onde podemos rodar o firebird ? Quais provedores usam ele ?
Eu mesmo já migrei alguns bancos firebird para DBFCDX, por conta do letodbf, gosto de ler e hoje não abriria mão do SQLITE, por conta da sua adoção, vejo o Firebird, sendo esquecido pelos desenvolvedores.
Advanced Strategies for Analyzing Mobile Data

https://www.jdsupra.com/legalnews/part-3-data-data-everywhere-advanced-58034/
HTML5 com SQLITE, em 2012, não sei se tem como fazer isso com Firebird.
https://blog.vilourenco.com.br/como-criar-sqlite-offline-em-dispositivos-moveis-com-html5/
Não é que o Firebird não seja suficiente, mas se podemos adotar DB mais plural, acredito que será melhor para a empresa.

Saudações,
Itamar M. Lins Jr.

harbour x firebird?

MensagemEnviado: 06 Ago 2019 10:37
por HASA
:%
- Bom dia, eu mesmo estou nessa encruzilhada, gostaria de ouvir mais opiniões do colegas,
:{
HASA

harbour x firebird?

MensagemEnviado: 06 Ago 2019 10:38
por HASA
8-|
Eu disse ouvir, mas... quiz dizer LER.
:|<
HASA

harbour x firebird?

MensagemEnviado: 06 Ago 2019 13:50
por Itamar M. Lins Jr.
Ola!
para travar no caso de uma alteração em rede precisará travar toda a base de dados

Que versão do SQLITE ?
1.0 File Locking And Concurrency In SQLite Version 3

SQLite Version 3.0.0 introduced a new locking and journaling mechanism designed to improve concurrency over SQLite version 2 and to reduce the writer starvation problem. The new mechanism also allows atomic commits of transactions involving multiple database files. This document describes the new locking mechanism. The intended audience is programmers who want to understand and/or modify the pager code and reviewers working to verify the design of SQLite version 3.

Mais isso, quem liga ? Não é o comando "update..." que faz ? SQL é para que não nos preocupemos com isso.
Os 3 BDs(MySQL,FireBird,SQLITE) são ACID!

Um Banco de Dados ACID é fundamental para qualquer aplicação crítica.

Uma das considerações mais relevantes ao decidir pela utilização ou não de uma tecnologia de banco de dados é saber se o banco é ACID(Atomicity, Consistency, Isolation, Durability), essas 4 característica possibilitam garantias que impactam diretamente o negócio.

Atomicidade: Controle sobre inicio e fim da transação, é a garantia que todo o bloco de transações foi executado integralmente.

Consistência: A garantia de que um dado está íntegro durante e após a transação.

Isolação: Controle sobre os dados de uma transação onde uma transação no banco de dados não pode impactar nos dados das transações em paralelo.

Durabilidade: Controle da persistência do dado garantindo que após o “commit” é necessário que o dados esteja 100% íntegro e disponível mesmo em caso de falha.


Olha a comparação dos 3 ai.
https://db-engines.com/en/system/Firebird%3BMySQL%3BSQLite

Saudações,
Itamar M. Lins Jr.

harbour x firebird?

MensagemEnviado: 06 Ago 2019 14:28
por Itamar M. Lins Jr.
Ola!
Legal ai as explicações, entendi melhor.
O SQLITE, se destaca mais em colher informações, armazenar local para depois guardamos em um BD cliente->servidor, uma vez que vai desafogar a rede.
Mas com processos que toda hora vai precisar de muitas requisições ao BD e acessos de vários usuários simultaneamente, melhor escolher o FB, MySQL etc...

Saudações,
Itamar M. Lins Jr.