Código
Após, formata o HD e restaura os backups, e o programa simplesmente deixa de funcionar, surgindo a famosa mensagem:
"An error ocurred while attempting to initialize the Borland Database Engine (error $2109)"
Tal erro acontece com programas que usam Paradox e dBase e que têm como mecanismo de acesso aos dados a Borland Database Engine (BDE), que foi durante anos o principal meio de se trabalhar com tabelas em aplicativos Delphi.
O sumiço se deve, geralmente, ao técnico que o cliente contratou para formatar a máquina (ou o próprio cliente, algum funcionário, amigo ou filho "entendedor do assunto"), e que em geral nunca ouviu falar da BDE, e não faz cópia de nada, muito menos se preocupa com a necessidade de reinstalar esta peça vital no funcionamento dos nossos programas.
É um problema que ocorre com certa frequência, e foi um dos motivos pelos quais abandonei o uso do BDE.
Desenvolvi, então, módulos de migração para o DBISAM - engine que atualmente faz o acesso aos dados nos meus softwares - que, adivinhe só, não funcionaram porque não há meios de abrir os antigos arquivos Paradox, já que a BDE está ausente ou mal-instalada.
Portanto, para poder rodar os módulos de importação de dados, tem que reinstalar o BDE no cliente. Mas, como instalar o BDE sozinho, sem nenhum outro software? E, importante, fazer de forma que esteja de acordo com as normas de distribuição da Borland, que reza que seja feito por um instalador homologado pela empresa? Melhor ainda, com mensagens em português (onde for possível) e sem que nosso usuário leigo se atrapalhe?
Pela frequência com que semelhante pergunta se repete nesse e em outros grupos de discussão sobre Delphi, resolvi escrever algo a respeito, contando como solucionei o problema, usando o Inno Setup para gerar o programa de instalação.
Passo 1:
Instale o Inno Setup. Faça o download gratuito em http://www.jrsoftware.org/
Passo 2:
Baixe as mensagens em português daqui (note os espaços no nome):
http://kylix.virtualave.net/forum/Jr PT-Br 3.06.isl
Passo 3: (passos 3 e 4 traduzidos da página do Inno Setup)
Baixe o programa MiniReg.exe para o diretório origem de sua instalação, a partir do endereço http://www.jrsoftware.org/files/MiniReg.exe
MiniReg é um utilitário que Jordan Russel (autor do Inno Setup) escreveu, e que contém um subconjunto das funcionalidades do programa REGSVR32.EXE, da Microsoft. (REGSVR32.EXE não é usado porque não vêm preinstalado em algumas versões do Windows 95).
Passo 4: Extraia o arquivo BDEINST.DLL do arquivo BDEINST.CAB, localizado (geralmente) em Arquivos de ProgramasArquivos ComunsBorland SharedBDE. Para isso, use o WINZIP ou digite "extract BDEINST.CAB" na linha de comando. Se o BDEINST.CAB não existir, e nem em seu CD do Delphi, baixe-o daqui http://www.jrsoftware.org/files3/bdeinst.cab
Passo 5: Mova o arquivo BDEINST.DLL para o diretório origem de sua instalação.
Passo 6: Coloque as linhas abaixo no seu script do Inno Setup e compile:
[Files]
Source: MiniReg.exe; DestDir: {tmp}
Source: BdeInst.dll; DestDir: {tmp}
[Run]
Filename: {tmp}MiniReg.exe; Parameters: """{tmp}BdeInst.dll"""
[Setup]
OutputDir=C:DelphiBDE
OutputBaseFilename=bde_setup
MessagesFile=C:DelphiInnoJr PT-Br 3.06.isl
Compression=bzip
AppName=Borland Database Engine
AppVerName=Borland Database Engine 5.1.1
DisableProgramGroupPage=true
DefaultDirName={tmp}
DisableDirPage=true
DisableStartupPrompt=true
Uninstallable=false
CreateUninstallRegKey=false
UpdateUninstallLogAppName=false
DisableFinishedPage=true
Feito isso, você terá um instalador certificado, já que será o próprio BDEINST.DLL, da Borland, que fará a instalação dos arquivos e a criação das entradas apropriadas no registro do Windows e não o seu instalador.
Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009