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!