[firebase-br] Rodar Firebird num CD

Fabio Giro fabio_giro em yahoo.com.br
Ter Dez 6 08:28:53 -03 2005


Já tive problema de instalação de sistema embarcado e após muitos testes o 
resultado foi este:

A alguns dias atrás coloquei um problema na instalação do Firebird
Embarcado aqui na lista (erro na gds32.dll) em que, quando instalava
no Windows 98 dava a seguinte mensagem: "Exception EIBClientError in
module Project2.exe at 000AEFD4. Interbase library gds32.dll not
found in the path. Please Install Interbase to use this
funcionality." Após muita pesquisa resolvi o problema. A solução é a
seguinte:

para o windows ME e XP, os arquivos necessários são:
meuprograma.exe
meubanco.fdb
gds32.dll <-- fbembbed.dll renomeada

para o windows 98, os arquivos necessários são:
meuprograma.exe
meubanco.fdb
gds32.dll <-- fbembbed.dll renomeada
C:\Firebird 1.5\Bin\Msvcp60.dll

Espero ter ajudado.

----- Original Message ----- 
From: "Marcos D. Almeida - Widitec" <informatica.widitec em terra.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, December 05, 2005 6:22 PM
Subject: Re: [firebase-br] Rodar Firebird num CD


meu problema esta com o Win98, no XP funcionou blz..

agradeço pela ajuda...
[]´s
Marcos

----- Original Message ----- 
From: "Michel Sugimoto" <michelsugimoto em yahoo.com.br>
To: <lista em firebase.com.br>
Sent: Monday, December 05, 2005 2:53 PM
Subject: Re: [firebase-br] Rodar Firebird num CD


> Vc precisa fazer uma aplicacao embarcada.
>
> Artigo retirado de: 
> http://www.activedelphi.com.br/modules.php?op=modload&name=News&file=article&sid=217
>
>
>
> Aprenda a instalar o Firebird sem precisar instalar o Firebird Server.
> O Firebird é um banco de dados leve, rápido e bastante flexível, uma 
> dessas flexibilidades é a capacidade de "embarcar" aplicações com ele.
>
> Como assim "embarcar" ? - Talvez você pergunte.
>
> "Embarcar" significa que você pode criar um aplicativo e embutir (ou 
> embarcar) o Firebird dentro de seu aplicativo de forma transparente e 
> distribuí-lo de forma fácil, basta executar seu aplicativo e pronto. 
> Nenhuma instalação do Firebird será executada, ou configuração existente 
> será mexida, nem mesmo será necessário parar o Firebird/Interbase que 
> esteja sendo executado naquele instante.
>
> Vamos à um exemplo para ficar mais fácil entender, digamos que precise 
> distribuir um CDROM com um catalogo de preços, neste CDROM você vai querer 
> gravar seu aplicativo e acessará os dados que estão gravados localmente no 
> CDROM. você não quer utilizar um banco de dados flat-table como Paradox, 
> Access ou DBF porque você já possui o aplicativo criado para acessar os 
> dados em Firebird/Interbase. A dificuldade estaria na distribuição de tal 
> aplicativo, pois forçar os usuários a instalar o Firebird/Interbase apenas 
> para ver o conteúdo de um CDROM pode ser o "fim-da-picada". Uma outra 
> sugestão seria embutir dentro do seu aplicativo CatalogoEletronico.EXE o 
> Firebird "Embeded" ou embutido, então nesse caso apenas a execução do 
> CatalogoEletronico.EXE já seria auto-suficiente para acessar a base de 
> dados no CDROM. Entendeu ?
>
> Pode parecer difícil fazer isso à primeira vista, mas você perceberá neste 
> artigo, o quão simples é, é tão simples que talvez você deseje utilizá-los 
> em todos os aplicativos que você crie, porém de antemão devo lhe avisar 
> que a versão embarcada do Firebird possui as seguintes características ou 
> até mesmo limitações :
>
> Apenas para acesso local (HD, CDROM,...) e não implementa nenhum acesso 
> via protocolo de rede, mesmo "localhost" não funciona, por essa razão 
> notará que a performance de tal aplicativo será rápida e o consumo de 
> memória bastante eficiente;
>
> Qualquer configuração do Firebird ou Interbase (independentemente de 
> versão) já instalado na máquina é ignorado, ou seja, não é preciso 
> desinstalar nada ou parar o serviço, nada é modificado em configurações 
> existentes, isso é um alívio para quem já estava acostumado a ter 
> problemas quando tinha de distribuir o arcaico BDE. Para se ter uma idéia, 
> o Firebird embarcado sequer faz uso de registry;
>
> Na questão de segurança, a versão "embarcada" não implementa nenhum 
> mecanismo de autenticação, a senha é ignorada, apesar disso se você 
> logar-se como "Pedro" e se este possuir certas restrições em tabelas, 
> estas restrições serão respeitadas. Para quem deseja criar uma aplicação 
> embarcada é desejável que use sempre a conta "SYSDBA" para não esbarrar em 
> problemas de permissões;
>
> Na questão de compatibilidade você poderá programar exatamente como fazia 
> antes, se você é programador Delphi e usava o IBX para acessar o Firebird, 
> continue usando o IBX, se você usava o IBO, continue a usar o IBO... nada 
> muda no seu estilo de programação, apenas o tipo de acesso que passará a 
> ser local ao invés de TCP/IP, NetBIOS ou IPX/SPX;
>
> Você pode disparar quantas aplicações "embarcadas" simultaneamente quiser 
> que não haverá nenhum conflito, mesmo que exista outras aplicações usando 
> o Firebird/Interbase em rede, apenas tenha certeza de ter memória o 
> suficiente para rodar todas elas. Note porém, que não deverá existir 
> várias aplicações acessando a mesma base de dados, pois o Firebird 
> embarcado não foi idealizado para este tipo de operação;
>
> Banco de dados com acesso do tipo "somente leitura" (read-only), ou cujas 
> mídias só permitam esse tipo de acesso como por exemplo CDROM necessita 
> que o(s) arquivo(s) de base de dados estejam marcados "read-only" e isto 
> só pode ser feito com o uso do gfix para uma base de dados já existente. A 
> sintaxe do gfix para este caso é a seguinte : gfix -mode read_only 
> C:\MY_APP\meus_dados.gdb. Se você não fizer isso, o Firebird tentará criar 
> arquivos de travamento (arquivos .lck) na mesma pasta da base de dados 
> para seu uso interno e poderá provocar erros no caso mídias ou locais cujo 
> acesso é de "somente leitura" ;
>
> Instalando o Firebird Embarcado
>
> Primeiramente baixe a versão "Embeded" (Embarcado) do Firebird, se for 
> criar aplicativos Linux, terá de puxar o CVS do Firebird e compila-lo com 
> a diretriz "--embeded" e gerar um "shared object" (.so) que deverá ser 
> incorporado à sua aplicação Kylix, C++, Phyton, .... e poderá usa-lo como 
> nas instruções que se seguirão para o Windows.
> Se você escreve programas em ambiente Windows, a situação é mais simples, 
> pois já existe a DLL do Firebird Embeded disponível em:
>
> http://www.ibphoenix.com/main.nfs?a=ibphoenix&page=ibp_download#150
> Para instala-lo faça o seguinte procedimento :
>
> Crie uma pasta no drive C:\MY_APP e descompacte-o Firebird Embeded nela 
> (são cerca de 4 arquivos contando o README) ;
>
> Crie também uma pasta em C:\MY_APP\FB e mova o arquivo firebird.msg para 
> essa pasta ;
>
> Copie o seu banco de dados Firebird (.gdb ou outro) para a pasta C:\MY_APP 
> ;
>
> A maioria dos componentes de acesso no Delphi/Kylix estão previamente 
> configurados para usar DLL client do Interbase chamada gds32.dll, essa DLL 
> no Firebird Embarcado chama-se fbembed.dll, no entanto, se você usa 
> Delphi/Kylix é provável que tais componentes queiram utilizar a gds32.dll, 
> então faça o seguinte : renomeie o arquivo C:\MY_APP\fbembed.dll para 
> C:\MY_APP\gds32.dll;
>
> Edite o arquivo firebird.conf que se encontra em C:\MY_APP e modifique a 
> seguinte linha :
> RootDirectory = C:\MY_APP\FB
>
> Se seu banco de dados utiliza UDF's, então crie a pasta C:\MY_APP\FB\UDF e 
> copie tais UDF's (que em geral ficariam em c:\arquivos de 
> programas\firebird\udf)para lá;
>
> Se seu banco de dados utiliza charsets ou collates de terceiros, então 
> crie também uma pasta C:\MY_APP\FB\INTL e copie as DLL's (que em geral 
> ficariam em c:\arquivos de programas\firebird\intl)para lá.
>
> Na realidade a pasta C:\MY_APP\FB será a mesma coisa do que C:\ARQUIVOS DE 
> PROGRAMAS\FIREBIRD com as mesmas estruturas, e que pode ou não necessitar 
> das pastas INTL e UDF. No meu caso que não faço uso de collates de 
> terceiros e nem UDF, fica assim a estrutura :
>
> C:\MY_APP\firebird.conf
> C:\MY_APP\meu_aplicativo.exe
> C:\MY_APP\meus_dados.gdb
> C:\MY_APP\gds32.dll
> C:\MY_APP\FB\firebird.msg
> C:\MY_APP\FB\UDF\
> C:\MY_APP\FB\INTL\
> Criando uma aplicação para ser embarcada
> Uma aplicação para ser "embarcada" precisa ter a seguintes características 
> :
>
> O path do banco de dados deverá ser identificado no componente de acesso 
> como partindo-se do diretório onde se encontra seu aplicativo, por 
> exemplo,
> se seu banco de dados está em "localhost:c:\my_app\meus_dados.gdb" então 
> use o path "meus_dados.gdb", um path de conexão com o banco de dados como 
> "localhost:c:\my_app\dados\meus_dados.gdb" será na realidade como 
> "dados\meus_dados.gdb" ;
> Use sempre a senha "SYSDBA/masterkey" para não ter problemas com 
> permissões.
> O protocolo de comunicação deverá ser "local" e nunca remota :
>
> Um exemplo de conexão usando o IBObjects :
> with IB_Connection1 do
> begin
> Username:='SYSDBA';
> Password:='masterkey';
> Database:='meus_dados.gdb';
> Protocol:=cpLocal;
> Open;
> end;
>
> Um exemplo de conexão usando IBX (Interbase Express) :
>
> with IB_IBDatabase1 do
> begin
> DatabaseName:='meus_dados.gdb';
> Params.Clear
> Params.Add('user_name=SYSDBA');
> Params.Add('password=masterkey');
> Open;
> end;
>
> Se você for esperto vai perceber que os procedimentos para acesso embebed 
> é apenas setar os componentes de acesso para usar a conexão local. Isto 
> significa em outras palavras de que se você for um bom programador, poderá 
> criar um mesmo programa que permita acesso local ou remoto. E se o acesso 
> for local, então usar-se a DLL da versão "Embeded" do Firebird. Para se 
> fazer poderá usar métodos simples como guardar a configuração do seu 
> aplicativo em arquivos no formato INI e lê-los no momento de partida 
> (inicialização) de seu programa. Esse é um jeito esperto de ter um mesmo 
> aplicativo que poderá rodar tanto como "Embeded" como com protocolo remoto 
> se for o caso.
>
> Alias, eu acredito que a maioria dos programadores já fazem isso para não 
> ter que engessar seu programa a um local especifico para servir de 
> recipiente de dados.
>
> Considerações finais
>
> Os arquivos embarcados na sua aplicação cabem num simples disquete de 
> 1.44K, uma aplicação embarcada consumirá apenas 1MB de RAM a mais do que 
> uma aplicação no modelo clássico cliente/servidor com protocolo de acesso 
> remoto. Basta apenas 3 arquivos (firebird.conf, fbembeded.dll, 
> firebird.msg) que devem ser instalados juntamente com o seu aplicativo. 
> Isto simplifica bastante distribuição de catálogos eletrônicos, programas 
> com acesso a dados não compartilhado, quiosques, versões de demonstração, 
> etc... somente não recomendaria que você deixasse o modelo tradicional de 
> acesso remoto para usar o "embarcado" (acesso local) como "modismo" pois o 
> modelo tradicional cliente/servidor com acesso remoto/local para tais 
> tarefas ainda é o melhor.
>
> Arquivos para download :
>
> Este artigo está sob forma de licença GPL (General Public License) e pode 
> ser reproduzido e distribuído livremente em outros tipos de mídia 
> diferentes donde este artigo foi originalmente publicado, no entanto, 
> atente-se para fato de que qualquer produto associado à este artigo também 
> herdará as características GPL e também deverá ser fornecido livremente. 
> Se reproduzir este artigo em outro local, como cortesia avise o autor.
>
> Autor : Gladiston Santana
> Home Page : www.gladisto.hpg.com.br
> Enviado por: Wesley Bento Moreira
>
> Marcos D. Almeida - Widitec wrote:
>> Pessoal , estou precisando criar um Demo de um sistema nosso para 
>> demonstrar aos nossos clientes, mas preciso q o firebird server rode 
>> direto do CD, sem que seja necessario a instação do mesmo nos PCs dos 
>> nossos clientes...
>> o sistema é para Windows 98 e XP.
>>
>> atte ==========================
>> Marcos Darui Almeida
>>
>> Depto de Informática
>> Eletro Widitec Ltda Fone/Fax: (55) 3375-4499
>> Panambi - RS - Brasil
>> www.widitec.com.br www.widitec.com
>> ==========================
>> ______________________________________________
>> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>> Para editar sua configuração na lista, use o endereço 
>> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa 


	

	
		
_______________________________________________________ 
Yahoo! doce lar. Faça do Yahoo! sua homepage. 
http://br.yahoo.com/homepageset.html 






Mais detalhes sobre a lista de discussão lista