Distribuindo uma aplicação com Firebird

Icone FirebirdUltimamente tenho recebido alguns e-mails com dúvidas relacionadas à distribuição de aplicações desenvolvidas com banco de dados Firebird. Embora eu tenha respondido os e-mails, achei importante compartilhar essa informação aqui no blog também! Caso outros desenvolvedores tenham a mesma dúvida e encontrem o blog via mecanismos de busca, espero que este artigo sirva como orientação.

 

Terminei minha aplicação! E agora? Bom, acho que é só copiar o executável, o banco de dados, e levá-los para o computador do cliente!
Quando desenvolvi o meu primeiro aplicativo, também tive esse pensamento, porém, infelizmente não é tão fácil assim. Além do executável e do arquivo do banco de dados, é necessário distribuir as bibliotecas e os arquivos de configuração utilizados pela aplicação. A seguir, apresento duas modalidades de distribuição de uma aplicação desenvolvida em Delphi com banco de dados Firebird. É bom ressaltar que essas modalidades funcionam apenas para projetos desenvolvidos com os componentes da paleta dbExpress. Para outros conjuntos (IBX, FireDAC, UniDAC…), as bibliotecas provavelmente são diferentes.

 

1) Instalação do client do Firebird no computador do usuário
Nessa modalidade, é necessário levar o instalador do Firebird para executar no computador do cliente. Porém, ao invés de rodar a instalação completa, certifique-se de apenas de selecionar a opção que instala os arquivos essenciais (instalação mínima), conforme a imagem abaixo:

Instalação mínima do Firebird
Instalação mínima do Firebird

 

Esse tipo de instalação já é o suficiente para registrar o Firebird no Windows como serviço ou aplicação e adicionar um ícone no painel de controle para controlar o status de execução. Como padrão, a instalação já configura o Firebird para ser executado ao iniciar o Windows.
Além da instalação, o desenvolvedor precisa incluir os seguintes arquivos na distribuição do software:

  • Executável da aplicação (.exe);
  • Banco de dados (.fdb);
  • Biblioteca de conexão: dbexpint.dll no Delphi 7 ou dbxfb.dll no Delphi XE+;
  • Biblioteca do Firebird: gds32.dll no Delphi 7 ou fbclient.dll no Delphi XE+;
  • midas.dll;
  • Arquivos de configuração, caso necessários (INI, TXT, XML).

 

2) Utilização da versão embarcada do Firebird
Também conhecida como “embedded” (embarcado em inglês), essa modalidade dispensa a instalação do Firebird Client no computador do cliente. Ao invés disso, o desenvolvedor distribui uma biblioteca especial que se comporta como servidor no sistema operacional. Esse pacote do Firebird pode ser encontrado gratuitamente neste link (arquivo compactado).
Caso o desenvolvedor opte por essa modalidade, os arquivos abaixo devem ser distribuídos:

  • Executável da aplicação (.exe);
  • Banco de dados (.fdb);
  • Biblioteca de conexão: dbexpint.dll no Delphi 7 ou dbxfb.dll no Delphi XE+;
  • midas.dll;
  • icudt30.dll;
  • icuuc30.dll;
  • Arquivos de configuração, caso necessários (INI, TXT, XML).

E o mais importante: na pasta do Firebird Embedded há um arquivo chamado fbembed.dll. Se estiver utilizando o Delphi 7, renomeie este arquivo para gds32.dll ou, no caso do Delphi XE+, renomeie para fbclient.dll. Feito isso, inclua esse arquivo na distribuição também.

Pronto! Ao empregar uma das modalidades acima, a aplicação já poderá ser executada no cliente!


Para complementar o artigo, vale apontar algumas observações envolvendo a distribuição:

Observação 1: Comparação entre as duas modalidades
Certa vez, li em alguns sites que o Firebird embarcado é mais lento que o Firebird Client, porém, ainda não tive a oportunidade de medir o desempenho das duas versões. Portanto, não garanto que essa informação é verídica. Até o momento, só tenho utilizado o Firebird Client nas minhas distribuições.

Observação 2: Caminho do banco de dados
Alguns desenvolvedores “fixam” o caminho do banco de dados no TSQLConnection (componente de conexão) em tempo de projeto. Isso implica que, ao distribuir a aplicação para o computador do cliente, é necessário que a mesma hierarquia de pastas utilizada no computador do desenvolvedor seja criada no computador do usuário. Logo, se o desenvolvedor utilizar o diretório “C:\Meus Sistemas\Aplicativo\Banco.fdb” e o fixar no TSQLConnection, este mesmo caminho deverá ser criado no computador que executará a aplicação. Dependendo do nome das pastas, isso pode soar um pouco inadequado, não acha?

Para resolver isso, há duas alternativas eficientes. A primeira delas é configurar a aplicação para ler o banco de dados no mesmo diretório em que está o executável, utilizando o comando ExtractFilePath. No exemplo abaixo, se o executável estiver em “C:\Aplicativo”, ele irá procurar por “C:\Aplicativo\Banco.fdb”:

var
  CaminhoBD: string;
begin
  CaminhoBD := ExtractFilePath(Application.ExeName) + 'Banco.fdb';
  SQLConnection1.Params.Values['Database'] := CaminhoBD;
end;

 

A segunda forma compreende a utilização de arquivos INI para manter a aplicação dinâmica, ou seja, é possível alterar o caminho do banco de dados sem a necessidade de modificar o executável. Por exemplo, o desenvolvedor pode configurar a aplicação para ler o arquivo INI, obter o caminho do banco de dados e atribuí-lo ao TSQLConnection durante a inicialização.
Na prática, a estrutura do arquivo INI poderia ser dessa forma:

[Configuracoes]
CaminhoBD=C:\Aplicativo\Banco.fdb

No Delphi, em algum evento de inicialização (recomendo o evento OnBeforeConnect do TSQLConnection), basta utilizar este código:

var
  ArquivoINI: TIniFile;
  CaminhoBD: string;
begin
  ArquivoINI := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'Arquivo.ini');
  try
    CaminhoBD := ArquivoINI.ReadString('Configuracoes', 'CaminhoBD', EmptyStr);
    SQLConnection1.Params.Values['Database'] := CaminhoBD;
  finally
    ArquivoINI.Free;
  end;
end;

Para mais detalhes sobre como manipular arquivos INI pelo Delphi, confira o artigo neste link.

 

Bônus: se você utiliza o Inno Setup para criar instaladores das suas aplicações, saiba que existe uma linha de comando do Firebird que permite a instalação silenciosa sem intervenção alguma do usuário:

Firebird.exe /SP- /SILENT

Basta configurar essa linha de comando para ser executada durante a instalação da aplicação. No entanto, claro, é necessário que o instalador do Firebird seja incluído no instalador da aplicação principal, resultando em um arquivo um pouco maior.

 

Pessoal, espero que artigo tenha sido útil!
Obrigado pela visita e até a próxima semana!


 

Compartilhe!
Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Pin on PinterestEmail this to someone

65 comentários

  1. Parabéns pelo artigo André! Uma boa dica também é colocar o banco de dados no diretório Dados de Aplicativos, eg: “C:\ProgramData\MinhaEmpresa\MeuAplicativo”, principalmente por questões de permissão no Windows (usar a função SHGetFolderLocation pra obtê-la). Outra dica interessante é a utilização de máquinas virtuais com Windows “limpo” antes de enviar para o cliente.

    Abraço!
    http://www.tiegestao.com.br

    1. Olá, Danilo!

      A dica da utilização de máquinas virtuais é plenamente viável! Tinha até me esquecido dessa ideia. Inclusive já fiz uso de máquinas virtuais várias vezes para testar a instação e comportamento do software antes de colocá-lo em produção. Essa “simulação” é bem importante.

      Obrigado pela contribuição! Abraço!

  2. Existe algum meio para distribuição de sistema Java Swing com Postgres ?

    Meus parabéns pelo trabalho realizado André Luis,conheci sua página hoje mas de agora em diante vou acompanhar sempre.
    Um abraço.

    1. Olá, Luciano! Em primeiro lugar, obrigado pela visita!
      Luciano, ainda não tive a oportunidade de desenvolver uma aplicação em Java com PostgreSQL, então desconheço os arquivos que são necessários na distribuição. De qualquer forma, notei que muitos desenvolvedores utilizam o InnoSetup para criar instaladores. Talvez essa possa ser a forma mais fácil.

      Abraço!

  3. Parabéns André! Excelente artigo. Tenho uma aplicação em Delphi que não roda em rede e faz uso da base de dados Firebird 2.5. Queria migrar para versão embarcada do firebird justamente pela questão das dificuldades do cliente em instalar o aplicativo. Como seria esta questão das versões como: 32-bit embeded, 64-bit embeded. Digo, isto funciona apenas para a minha máquina que vou embarcar esta base de dados? Abração

    1. Olá, Walterlandy! Ótima pergunta!
      Se o sistema operacional do seu cliente é 32 bits, então você deve distribuir a versão embarcada nessa plataforma. Na verdade, a maior diferença está nas DLLs que acompanham o pacote embarcado do Firebird. Você pode, então, criar distribuições do seu aplicativo nas duas plataformas, caso necessário. Mesmo assim, vale a pena realizar alguns testes utilizando uma máquina virtual, por exemplo.
      Obrigado pelo comentário!

  4. André, tudo ok!
    Seguinte meu amigo, baixei a versão embarcada para 64bits. Fiz tudo direitinho, mas na hora de testar na máquina do cliente que por sinal é de 64bits, apresentou este erro:
    Exception EIBInterbaseError in module Mapa.exe
    at00126E2E. unsupported on-disk structure for file
    C:\MAPA\BANCO.FDB; found 11.2, support 11.1

    Na máquina do cliente está instalado o Interbase Versão 6.0. Seria a versão do Interbase que deveria ser mais atual?
    Abração

  5. Bom dia Andre! Gostaria de saber se esse artigo se aplica tambem a uma distribuição de uma aplicação desenvolvida com .NET e Firebird. Desenvolvi uma pequena agenda com o Visual Studio 2012 e FB e gostaria de distribuir para uma pessoa. Agradeço a atenção e abraços irmão!

    1. Fala, Grande Reginaldo!
      Eu acredito que os arquivos utilizados na distribuição de aplicativos .NET são diferentes. Aliás, as bibliotecas do Firebird provavelmente podem ser as mesmas, já que no site não há distinção da linguagem de programação, porém, as bibliotecas internas do .NET (como a biblioteca de conexão) certamente será diferente.
      Uma boa forma de testar é utilizar uma máquina virtual para rodar o aplicativo desenvolvido. Na verdade, é uma forma mais “radical” de descobrir os arquivos necessários, mas é funcional.
      Abraço!

  6. Bom dia André!
    Parabéns pelo Post. Principalmente a orientação em que nos é ensinado sobre como direcionar a instalação silenciosa do Firebird.

    Muito Obrigado.

  7. Bom dia André, primeiramente parabéns por compartilhar de um modo simples o seu conhecimento, está sendo de grande ajuda.

    Uma dúvida, estou fazendo uma aplicação básica com Xe3+Firebird 2.5 Embedded, no meu pc roda normalmente, o banco funciona normalmente, meu problema está sendo na distribuição, segui seu passo a passo e criei o arquivo .ini, está na mesma pasta do meu .exe + o banco + as .dll’s que você passou, ao abrir a aplicação surge um erro dizendo, unavailable database.

    Qual caminho devo seguir para corrigir o erro?

    Obrigado.

    1. Olá, Humberto, tudo bem?
      No caso do William, bastou renomear o arquivo fbembed.dll (que acompanha a versão embarcada) para fbclient.dll no momento da distribuição. Esse arquivo atuará como “servidor” quando a aplicação for iniciada.

      Abraço!

  8. Caro André, mais uma vez estou frequentando seu espaço!

    Estive lendo outros posts, mas como são avançados para mim, não ouso comentar…

    Aliás, sobre firebird ainda não sei praticamente nada, porém, ao pesquisar nos buscadores pelo firebird embedded, obviamente o seu blog estava entre os sites encontrados.

    Estou começando a desenvolver uma pequena agenda só para aprendizado, e vou utilizar o firebird. Estou pretendendo utilizar o embedded pois em algumas máquinas que poderei rodar a agenda, não há permissão de instalação de qualquer software.

    Dois achados hoje! O Firebird Embedded (ótimo para o que pretendo) e a alusão a ele no blog!

    Grande abraço e parabéns por mais este post de excelente conteúdo!!!

    1. Olá, Jadilson! É uma grande honra ter mais um comentário seu no blog!
      Isso mesmo, Jadilson, o Firebird embedded é útil para situações como a que você mencionou: sistemas operacionais configurados para não permitir a instalação de novos softwares. A versão embedded fornece uma DLL que assume o papel de servidor e dispensa a instalação do SGBD.

      Grande abraço!

  9. André é necessário mesmo criar um novo arquivo.ini para a configuração do banco?

    Usando os arquivos:
    dbxconnections.ini
    dbxdrivers.ini

    E configurando no: dbxconnections.ini o caminho do banco ja não seria sufuciente?

    Estou testando assim em uma máquina virtual mas, mesmo assim continuo com problemas para acessar o banco.

    1. Olá, Adilson. A diferença ao usar o arquivo dbxconnections.ini é que, ao invés de informar o caminho do banco de dados, você estará informando um driver de conexão. Logo, as instruções necessárias para carregar o banco de dados também serão diferentes, como seguem abaixo:
      SQLConnection.Close;
      SQLConnection.ConnectionName := 'NOME_DO_DRIVER';
      SQLConnection.DriverName := 'Firebird';
      SQLConnection.LoadParamsOnConnect := True;
      SQLConnection.LoginPrompt := False;
      SQLConnection.Open;

      E, claro, vale lembrar que, neste caso, os arquivos dbxconnections.ini e dbxdrivers.ini deverão acompanhar a distribuição do aplicativo.
      Abraço!

  10. Olá André, Parabéns pelas dicas. To com um programa com banco paradox, e quero passar para o firebird. Tem como converter o banco paradox em firebird ou melhor ter um banco firebird pronto e ir transferindo os dados tabela por tabela.

    1. Olá, Emerson, tudo bem?
      Infelizmente não tenho conhecimento de alguma ferramenta que automatize a conversão de banco de dados Paradox para Firebird. De qualquer forma, mesmo se conhecesse, eu optaria por desenvolver um aplicativo exclusivo para realizar a migração de dados (também conhecidos como “De-Para”). Através dele, seria possível transformar alguns dados da origem para serem gravados no destino como, por exemplo, conversões para maiúsculas, concatenações e/ou adaptações, semelhante a um processo de ETL. Além disso, o desenvolvedor poderia exportar o andamento da migração em um arquivo de log, como também controlar possíveis exceções.

      Espero ter ajudado! Abraço!

  11. Bom dia amigos, excelente publicação. Já criei meu instalador pelo Inno Setup, onde ele instala a aplicação + firebird + drivers ODBC, tudo de forma silenciosa sem intervenção do usuário. Preciso agora embutir no Inno Setup o registro da midas.dll mas não estou conseguindo. Podem me ajudar?

    1. Olá, Marcello, tudo bem?
      Na época em que gerei os instaladores para as minhas aplicações, eu sempre configurava o Inno Setup para copiar a biblioteca “midas.dll” para a mesma pasta do executável sem algum comando adicional para registrá-la. Acredito que o registro dessa DLL não seja necessário. Experimente fazer o teste!

      Abraço!

    2. Boa tarde Marcello. Como alternativa ao midas.dll, eu declaro na seção uses do meu form principal a unit midaslib, e tem funcionado corretamento comigo, sem a necessidade de copiá-la no diretório do meu projeto.

  12. Pessoal, eu estava querendo saber como verificar se já existe uma versão do Firebird instalada no micro (pois a instalação é silenciosa), então achei o seguinte para se colocar no projeto do Inno Setup, testei e deu certo aqui:

    [Run]
    Filename: {tmp}\SETUP_LINX\firebird-2.0.4\Firebird-2.0.4.13130_0_win32.exe; Description: Firebird Server; WorkingDir: {tmp}; StatusMsg: Aguarde… Instalando / Configurando Firebird 2.0.4; Parameters: “/VERYSILENT /NOICONS /COMPONENTS=””SuperServerComponent, ServerComponent, DevAdminComponent, ClientComponent”” /FORCE /COPYFBCLIENT”; Flags: waituntilterminated 32bit skipifdoesntexist; Components: Sistema; Check: VerificaFirebirdInstalado

    [Code]
    function VerificaFirebirdInstalado : Boolean;
    begin
    Result := not RegKeyExists(HKEY_LOCAL_MACHINE, ‘SYSTEM\CurrentControlSet\Services\FirebirdServerDefaultInstance’)
    if not Result then
    begin
    MsgBox(‘Já existe uma instância do Firebird instalada’#13’neste computador. O firebird não será instalado.’, mbInformation, MB_OK);
    end
    {endIf};
    end;

  13. Boa tarde André Luiz
    parabéns pela dica a qual segui, usando arquivo.ini
    [SISINFO]
    PATH_BANCO=C:\SISINFO\FB\dbSISINFO.gdb
    PASSWORD=masterkey
    USER_NAME=SYSDBA
    Quando executo da a seguinte mensagem:
    —————————
    Application Error
    —————————
    Exception EDatabaseError in module SISINFO.EXE at 000F28B1.
    Unable to complete network request to host “@1”.
    Failed to establish a connection.
    Nenhuma conexão pôde ser feita porque a máquina de destino as recusou ativamente.
    Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements
    Error Code: 401.
    O que estou fazendo errado?
    Obrigado.

    1. Olá, Mauro!
      Em primeiro lugar, obrigado pela visita e pelo comentário no blog!
      Mauro, eu acho que pode ser uma dessas causas:
      1) A propriedade Connected do TSQLConnection deve estar configurada como False em tempo de projeto para que a conexão seja feita em tempo de execução.
      2) Talvez o problema seja o evento que você esta utilizando para fazer a conexão. Eu sugiro o evento OnBeforeConnect.

      Espero que lhe ajude!

    2. Bom Dia, André Luis.
      Realmente, a propriedade Connected do TSQLConnection estava configurada como True.
      Acertou na “mosca”
      Obrigado.

  14. Boa Noite, André.
    Realmente a distribuição do aplicativo com a instalação silenciosa do Firebird, para mim, tem sido um problema. No caso do terminal cliente, basta colocar a dll gds32.dll ou fbclient.dll em ‘C:\Windows\System32\’. Normalmente funciona. Mas quando a instalação é do servidor usando o instalador normal no win7 ou 8 sempre tive de configurar como aplicação e não colocar o link no painel de controle.
    Como serviço não funciona e o link no painel de controle causa um erro (não abre o painel), configuro o servidor manualmente. Ainda não consegui usar o embedded porque não achei como configurar esses parâmetros nem com o Inno ou InstallShield.
    Eu uso um arquivo INI para configurar o local do servidor para os terminais cliente, assim realmente fica mais fácil a instalação.
    Há pouco tempo alguns Bancos estão usando o Firebird em suas aplicações. Isso tem causado problema, talvez pela versão. Eu ainda uso a 1.5 e não gostei da 2.5, então estou tendo que desinstalar as duas versões do FireBird e reinstalar a minha. Um dos bancos é Banco do Brasil.
    Detalhe: como comecei a criação do software muitos anos atrás, iniciei usando Paradox. Com o tempo mudei para o Firebird usando o componente BDE e ainda uso. Entre mudar para o DBX, Interbase ou agora o FireDac XE7, fica difícil decidir. Entre o BDE e o DBX a performance não muda muito. O componente Interbase estou usando em alguns programas que exigem maior velocidade. Os testes com o FireDac + Firebird não foram satisfatórios para mudar todo o acesso a base de dados.
    Realmente estou pensando em mudar para outro tipo de SGBD, para facilitar a distribuição, performance e compatibilidade com aplicações para mobile.
    Obrigado pela atenção e as dicas que tem dado.

    PS: Eu já passei por varias situações colocadas aqui.

    1. Olá, Gerson!
      Obrigado pelo depoimento. O Firebird realmente possui uma incompatibilidade com as versões mais novas do Windows, exigindo que a configuração seja feita manualmente. A respeito da versão embedded, no InnoSetup ou InstallShield, basta copiar os arquivos embarcados para a mesma pasta do executável. A DLL fbclient.dll se comportará como servidor quando a aplicação for iniciada.
      Bom, Gerson, quando eu migrei do BDE para dbExpress, observei um relativo ganho de performance, principalmente nas consultas. O FireDAC, por sua vez, traz uma arquitetura mais robusta com SGBDs, mas ainda não tive oportunidade de utilizá-lo para monitorar o desempenho. Quando possível, pretendo testá-lo e elaborar um artigo sobre essa tecnologia.

      Abraço!

  15. Ola, boa tarde, André.
    Desculpe pela extensão deste comentário e de outros, mas esta matéria é realmente relevante.

    Abraço!

  16. Olá, André, tudo bem?

    Estou usando o IBExpert, realmente é muito bom, obrigado pela dica.
    Mas, outro detalhe quase nesse tópico, como usar MySQL com FireDac, criei uma base teste no freewha, mas não consegui acessar a base.
    Bem foi a primeira tentativa, nunca usei MySql.
    Abraço!

    1. Olá, Gerson!
      Ainda não tive a oportunidade de fazer uma conexão com o MySQL usando os componentes do FireDAC. Se eu souber de algum tutorial ou alguma dica, envio no seu e-mail!
      Abraço!

  17. Obrigado.
    Ele dá uma mensagem de erro inconsistente, mesmo definindo o local da library, tipo “c:\Windows\system32\libmysql.dll”. Retorna algo assim: “c:\Windows\system32\bin\c:\Windows\system32\libmysql.dll, caminho inválido”. Parece mais erro do componente. Mesmo não sabendo usar acho estranho.
    Provavelmente existem outros componentes para isso, com Firebird tudo bem, mas é recomendado o FireDac (pode ser modismo). Temos que experimentar.
    Abraço!

    1. Que estranho, Gerson.
      Pela mensagem, o caminho da biblioteca indicado no componente de conexão está incorreto. Observe que há 2 caminhos concatenados, pois o “C:\” aparece 2 vezes. Eu começaria por verificar essa propriedade e corrigi-la.
      Outra alternativa é colocar as bibliotecas do MySQL na mesma pasta do executável para facilitar a vínculo.

      Boa sorte!

  18. Procurei nos componentes e no código, não achei nada duplicado, coloquei a biblioteca junto com o app, corrigi o caminho, nada.
    Mas quando executei o XE7 como adm, esse erro não foi mostrado mais, vou mudar a Hospedagem do BD e tentar novamente.
    Obrigado.

  19. Olá, André.
    Na pesquisa que estou fazendo, para um melhor SGBD, e melhorar o FB, descobri que a partir da versão 2.5.4 do Firebird foi incluída uma terceira opção, além de “Super Server” e “Classic”, temos o “Super Classic”.
    Esta opção não aparece no menu inicial, mas depois de selecionar “Classic”, tem a opção pelo “Super Classic”.
    Qual a vantagem?
    Enquanto o “Super Server” só consegue trabalhar com uma CPU, em um Quad-Core, o “Super Classic” trabalha com todas, distribuindo o processamento em todas as CPUs disponíveis. Testei e realmente funciona.
    Ainda não fiz grandes testes de performance (rede com vários usuários). Devo instalar para uso em um i5 3º geração, 4 GB memória, 160 GB HD SSD, XP SP3, rede e Switch Gigabit.
    Nesta máquina, com FB 2.5.0 “Super Server”, o uso de CPU atual é 57% em media, com 15 terminais. Vou colocar a 2.5.4, pois foi essa que testei.
    Vou fotografar o uso de CPU antes e depois em plena carga (loja cheia). Vamos ver.
    Abraço!

    1. Olá, Gerson!
      Bem interessante a sua pesquisa! Obrigado por compartilhar!
      Quando instalo o Firebird em meus clientes, realmente reparo nas diferentes opções de instalação disponíveis, mas nunca tive a oportunidade de procurar a diferença entre elas. De acordo com a sua pesquisa, o “Super Classic” pode trazer bons ganhos de performance quando utilizado em um ambiente multiusuários ou que tenha uma grande massa de dados. A vantagem, claro, é a redução de tempo nas solicitações ao banco de dados.

      Boa sorte na continuidade da sua pesquisa! Abraço!

  20. Oi André!
    Escuta, se no cliente o sistema operacional for de 64bits, então levo a versão embarcada de 64bit? Da mesma forma vale para o de 32bits?

  21. Olá André,
    Considerando que eu já tenho o servidor Firebird (dedicado) e a minha aplicação (client) instalada com todas as suas respectivas DLLs faltando somente o cliente do Firebird, daí se eu copiar para essa máquina somente a DLL gds32.dll do Delphi 7 vai funcionar? Fiz uns testes dessas forma mas não deu certo. Tem como fazer assim?

    Grato e aguardo seu comentário.

    1. Olá, amigo, tudo bem?
      Embora eu nunca tenha feito este teste, acredito que realmente não funcionará. Será necessário instalar o cliente do Firebird para que os demais arquivos essenciais e as chaves no registro sejam criados.

      Abraço!

  22. Olá André, bom dia.
    Entendido.
    Apesar do seu comentário, eu já ouvi falar que alguns desenvolvedores trabalham assim, mas com dito anteriormente, eu não consegui (ainda).
    Muito obrigado pela sua atenção e parabéns pela matéria.

  23. Olá André, bom dia, estou com uma problema espero que possa me ajudar fiz uma aplicação Delphi Berlin, FireDac e Firebid 3.0 quando tento rodar esta aplicação em outra maquina ela roda mas os DBgrids ficam brancos e nao apresentam nenhum erro de conexão, declarei MidasLib na uses do meu projeto ja coloquei dlls FBClient 32 e 64 mas ainda permanece o problema, não sei mais o que fazer, tem alguma idéia do que seja?

  24. oi Andre
    Parabens muito bom seus artigos.
    Andre voce sabe me informar como consigo a lista contendo todas as exceptions do firedac?
    Abracos

    1. Olá, José, tudo certo?
      Não tenho certeza, mas acho que há uma lista de erros no método “FDGetErrorMessage” da unit FireDAC.Stan.Error. Confira lá!

      Abraço!

  25. Amigo André, preciso tirar uma dúvida. Bom dia.
    Tenho um servidor que atualiza os pdvs. Por exemplo:
    PDV1_COMPUTADOR=LOCALHOST
    PDV1_DATABASE=C:\Sadm_Gestor\PDV\BD\DATPDV.FDB

    Mas o problema é na outra máquina em rede:
    PDV2_COMPUTADOR=LOCALHOST
    PDV2_DATABASE=\\192.168.15.240\f\Sadm_Gestor\PDV\BD\DATPDV.FDB

    caminho do banco está ok, mais acho que o localhost está errado, tenho que colocar localhost mesmo?
    digo para acessar outra máquina.

    1. Olá, Fabrício, como vai?
      O “localhost” deve ser informado somente no servidor. Nos terminais da rede, se você informar “localhost”, a aplicação tentará conectar-se a um banco de dados na própria máquina, ao invés de buscar o servidor. Portanto, para que isso não ocorra, deve-se substituir o “localhost” pelo IP do servidor obedecendo a sintaxe:

      IP:CaminhoDoBanco

      Veja um exemplo de conexão:

      192.168.0.1:C:\Aplicativo\Banco.fdb

      Abraço!

  26. Obrigado pela resposta. No meu caso fiz assim Server: 192.168.0.240 e caminho c:\aplicativo\banco.fdb ,
    São varios pdvs e um servidor enviando atualizações e trazendo também. Essa configuração está dentro de um arquivo Ini. Deus abençoe.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Preencha o campo abaixo * Time limit is exhausted. Please reload CAPTCHA.