sábado, 29 de agosto de 2009

Conectando o Firebird com Lazarus

“A ferramenta serve para auxiliar o artista com suas criações”

Existem algumas coisas que sempre ouvimos falar, porém nunca demos atenção! Mas um dia, essa lembrança volta com uma certa pitada de curiosidade! Pronto! É a formula certa para fazer qualquer um arregaçar as mangas e dar a devida atenção!
Isso aconteceu comigo! Sempre ouvi falar sobre o Lazarus (não estou me referindo ao cantor Gospel!), diziam que era um programa parecido com o Delphi, só que Free! Humm, free?! Será que alguém conseguiria criar uma ferramenta tão boa quanto o Delphi e além de tudo ser 0800?!
A resposta é: Lazarus! Estamos diante de uma excelente ferramenta, que vem crescendo e evoluindo de uma forma muito rápida! Pode ser utilizado em windows ou Linux, possibilitando assim criar aplicações para os sistemas operacionais mais utilizados comercialmente.
O que me chamou atenção realmente foi poder utilizar os conhecimentos que tenho com o Delphi e programar para ambiente Linux como estou acostumado a fazer para windows.
Estarei mostrando agora como se conectar no banco de dados Firebird utilizando o componente nativo do Lazarus.
Obs: Não estarei explicando como instalar, mas estarei listando alguns links que são muitos explicativos e fáceis. Através deles que configurei tudo em minha maquina! :)
Conectando no firebird:

  1. Com o lazarus aberto, vamos em File / New... e Selecionar em Application.
  2. Quem já trabalho com Delphi vai sentir uma certa facilidade em lidar com a IDE do Lazarus, e com a forma que ele organiza forms e units.
    Agora, vamos dar um nome ao nosso form principal: FPrincipal

  1. Agora vamos no menu File / Save As... para salvarmos o nosso projeto.
    O primeiro nome é que iremos dar é para o Form: Uprincipal.pas
    O segundo nome é para o Projeto: Conexao.lpi
  2. Agora vamos acessar a aba SQLdb e adicionar o componente TIBConnection

Após adicionar esse componente vamos mudar as seguintes propriedades:
  1. Name: IBConexao
  2. UserName: SYSDBA
  3. Password: masterkey
  4. DatabaseName: local onde esta o banco mais nome do banco (no meu caso /home/eek/employee.fdb)
  5. HostName: localhost
  6. Conected: True
  1. Se conseguir colocar o conected = True e não exibir nenhuma mensagem de erro, tudo esta fluindo perfeitamente! :)
  2. Agora vamos adicionar um componente chamado TsqlTransaction:
    1. Name: Transacao
    2. DataBase: IBConexao (nosso componente de conexão com o banco)

  1. Vamos agora adicionar o componente TsqlQuery para buscar os dados da tabela.
    1. Name: qryCountry
    2. Transaction: Transacao
    3. SQL: SELECT * FROM COUNTRY
      Clica no botão verde para executar e verificar se retornou algum dado.

  1. Vamos exibir esses dados num grid, para isso coloque o componente da palheta Data Controls chamado DBGrid.
  2. Na palheta Data Access coloque adicione o TdataSource e altere:
    1. Name: dsCountry
    2. DataSet: qryCountry
  1. O DBGrid altere:
    1. DataSource: dsCountry
  1. Agora para finalizar nosso teste, vá no componente qryCountry e defina seu Active = True.
    Se o resultado for, quer dizer que tudo correu bem e que eu consegui explicar sem complicar! Isso é bom! :P


A ideia básica desse artigo é justamente te mostrar como é simples esse contato inicial com o banco de dados Firebird com o Lazarus.
Estude com calma seus componentes e suas particularidades, assim você estará se familiarizando cada vez mais com a ferramenta.
Fica ai a dica para quem esta afim de conhecer um pouco desse mundo chamado Lazarus. Ele esta crescendo e ganhando corpo, mostrando que tem potencial e capacidade para criar excelentes aplicações.

Grande abraço!

19 comentários:

  1. Olá Leonardo,

    Cara é ótimo artigos sobre o Lazarus, pois estimula o desenvolvedor a conhecer/usar a ferramenta; E é muito importante mostrar os recursos nativos, concretizando que o Lazarus esta bem usável.

    Gostei do artigo, parabéns ;D

    Silvio Clécio

    ResponderExcluir
  2. Olá

    Estou e sou totalmente absurdamente iniciante em Lazarus e Firebird. Meu primeiro contato foi com o seu post.

    Esclarecedor para iniciantes... Espero achar mais coisa interessantes para que eu possa aprender a mexer nesta linguagem

    ResponderExcluir
  3. Opa Wilson Bom, que legal!
    Em breve estarei colocando mais artigos para facilitar a galera que esta iniciando (também estou nesse grupo).
    Grande abraço!

    ResponderExcluir
  4. Kra, parabéns pelo post!!! Só uma coisa, o nome do seu blog não deveria ser "Relatos Noturnos" no plural? Falta concordância da forma que está e passa uma imagem meio errada do conteúdo.

    ResponderExcluir
  5. Obrigado!
    Eu não tinha pensado nisso, obrigado pela dica!
    Grande abraço!

    ResponderExcluir
  6. Parabéns cara!
    Acho importante valorizar os componentes nativos do IDE, afinal vários profissionais e professores que trabalham com o IDE preferem usar paletas com componentes externos. Isso de certa forma torna o IDE muito dependente!
    Essa é a minha opinião, de um mero microdesenvolvedor.

    Enfim vc tá de parabéns!

    ResponderExcluir
  7. Grande garoto!, Leo estás de parabéns. Claro e objetivo

    ResponderExcluir
  8. Este comentário foi removido pelo autor.

    ResponderExcluir
  9. oi Amigo, uso DEPHI 7 com IBO-COMPONENTES (comercial), gostei deste componente para acesso ao FIREBIRD, pois ele faz acesso nativo no banco, o que deixa muuuito mais rapido, comparado a outras ferramentas (ex:zeos).
    Vc sabe como funciona o acesso ao FIREBIRD pelo Lazarus ? sera que ele não peca, no quesito velocidade ?

    ResponderExcluir
  10. Ola Juliano!
    O acesso pelo lazarus é bem rápido também. Quando eu fiz o teste, eu realizei uma comparação com o Delphi 7 e Lazarus, acessando e realizando alguns selects e update. O resultado no lazaros foi um pouco melhor.
    Mas era tudo local, se for acessar pela web direto, não vale a pena utilizar firebird (ainda não).
    Grande abraço!

    ResponderExcluir
  11. Boa tarde, não consigo fazer conectar. Tenho um projeto no Delphi 7, e peguei somente o banco e coloquei em outra pasta para testar como Lazarus. Quando coloco o endereço do banco; hostname = localhost; username = SYSDBA; password = masterkey; e coloco pra conectar, dá erro. Aparece isso:

    IBConnection1 : DoInternalConnect :
    -Unable to complete network request to host "localhost".
    -Failed to establish a connection.

    Sabe o que pode ser?

    ResponderExcluir
  12. Muito obrigado cara, seu artigo resolveu o meu problema, obrigado.

    ResponderExcluir
  13. Amigo, parabéns pelo artigo.
    Eu tenho um bd com 14 tabelas em firebird.
    A conexão é feita tabela a tabela ou com o bd todo ?
    Essa é minha dúvida. O mais lógico é com todo o bd, porém como vc fez com uma única tabela ficou a dúvida.
    Grato e um abraço.

    ResponderExcluir
    Respostas
    1. Obrigado pela comentário.
      A conexão é feita para o banco todo!

      Excluir
  14. Ola Leonardo ... agora que resolvi passa a usa o Lazarus este na versão 1.6 do win64 não se conecta com nenhum banco de dados, testei o FB, MySql e o Postgres ambos com as dlls no system32 e sysWOW64, no local da aplicação e coloquei até mesmo no diretório bin do fpc e ambos erros que não conexão tipo "Can not load default MySql library ("libmysql.dll" or "libmysql.dll"). check your installation.

    Lembrando que esta rodando normalmente no delphi a conexão desses BD.

    Se puder me de uma luz no jrobertorj@live.com

    Abçs

    ResponderExcluir
    Respostas
    1. Galera aqueles que estiverem com o mesmo problema. Desinstalem qualquer versão 32 bts e instalem a 64 bts. Pronto Problema resolvido. Abraço gente e LEONARDO PROCOPIO, obrigado pelo interesse e ter retornado meu e-mail. Estamos ae se precisarem.

      Excluir
  15. Muito bacana a explicação. Exemplo simples e prático para quem está iniciando nessa IDE e também inciando ao mundo de banco de dados. Obrigado pela ajuda

    ResponderExcluir