quinta-feira, 16 de setembro de 2010

Firebird Embedded

Esses dias precisei mudar um sistema de um cliente que usa Firebird Super Server para embarcado (embedded).
A principio achei que daria muito trabalho, mas quando iniciei a pesquisa descobri que não seria bicho de 7 cabeças!

Essa versão do Firebird foi feita para rodar sem necessitar instalar nada na maquina. Ela lembra um pouco a funcionalidade do SQLite de funcionar!
Excelente para mandar com aplicativos de demonstração, roda de pendriver, disquete (ainda existe?) e onde mais você quiser!

Funciona maravilhosamente para um cliente, não deixando nada a desejar!
E o melhor de tudo, sua instalação e configuração é muito simples!

Para testar em minha maquina, parei todos os serviços que estavam rodando do firebird, fui até o site da ibPhoenix selecionei a versão V2.1.
Fui direcionado para essa parte:






Baixei o Embedded Server For Windows.

Vamos supor que sua aplicação esteja no seguinte diretorio: C:\MEU_SISTEMA e que seu banco esteja em C:\MEU_SISTEMA\MEUBANCO.FDB
Extraia os arquivos do zipados do Firebird embedded e você deve ficar com a seguinte estrutura, tirando o seu banco e executável da aplicação:




Vamos começar a fazer a configuração.
Abra o arquivo firebird.conf e localize a seguinte palavra: #RootDirectory e altere para o diretorio onde se encontra sua aplicação (com esses arquivos que você extraiu do firebird é claro!). Não se esqueça de retirar o # para descomentar.
No nosso exemplo ficou como RootDirectory = C:\MEU_SISTEMA
Até ai tudo tranquilo, né?!
Agora vamos configurar nossa conexão.
No meu caso que utilizei o Delphi 7 para criar esse programa, tive que mudar algumas coisas, então vamos aos detalhes: nas versões server do firebird, sempre usei o fbclient.dll para conexão. Na versão embedded tenho que utilizar o fbembed.dll. Mas caso queira renomear para fbclient.dll fique a vontade! Eu preferi deixar do jeito que esta.
Outro detalhe muito importante, é que na string de conexão, comigo só funcionou colocando o caminho do banco, sem LOCALHOST ou porta: C:\MEU_SISTEMA\MEUBANCO.FDB
Feito isso, deixei usuario/senha padrão mesmo (SYSDBA/masterkey) e tentei conectar!
O primeiro erro que tive, foi que “CHARACTER SET WIN1252 is not definid”. Fiz varias pesquisas mas não consegui achar nada para solucionar, então a unica solução que encontrei foi definir o CHARSET = NONE.
Desta forma a aplicação executou! Agora estou procurando uma forma de utilizar o Charset WIN1252. Assim que conseguir posto aqui!

Minha ideia com esse artigo é tirar a impressão de que rodar o firebird embarcado é complicado, que nada! Deu pra ver com é tranquilo né! ;)
Agora você ja pode criar sua aplicação e rodar direto do pendriver, montar agenda, etc!

Grande abraço e Muito Obrigado!

5 comentários:

  1. Olá amigo, tive o mesmo problema quanto ao Charset, porém descobri que o problema não é com o firebird embedded, no download da instalação existe uma pasta chamada intl, salve esta pasta na mesma pasta onde você salvou o arquivo fbembed.dll e voilá, irá funcionar perfeitamente. abraço

    ResponderExcluir
  2. Obrigado Gilson! Vou fazer um teste aqui!
    Grande abraço!

    ResponderExcluir
  3. Tem como trocar o usuário padrão do Firebird Embeded? Como?

    ResponderExcluir
  4. Vou fazer um teste e te respondo!
    Boa pergunta!

    ResponderExcluir
  5. Saudaçoes, Exelente post, me ajudou muito!

    Seguindo a indicação do Gilson Inácio, percebi que a pasta intl, ja vem dentro do embl 2.6, tentei inclusive colpiar os arquivos para a Raiz, porem nao esta funcionando.
    “CHARACTER SET WIN1252 is not definid”
    Estou utilizando Windows 7 e IBExpert Personal Edition Version 2011.01.11, coloquei meu banco na Raiz c:/Meu projeto/DB/
    SOMENTE LOGOU COMO CHARSET = NONE.
    O que poderia estar ocorrendo?

    ResponderExcluir