Pq meu DB não pega nos outros PCs?
Olá pessoal,
desenvolvi aqui um simples aplicativos o qual utiliza banco de dados DBF..
no meu pc funciona tudo perfeitamente, mas quando coloco em outro PC da erro ao tentar abrir o Borland Database (não lembro bem do erro).. imagino eu q pq não tenha o database necessário no outro PC para rodar.. então, o qpreciso fazer para rodar no outro pc? alguma dll, instalar algo? ou o q?
Valew pessoal,
Rafael
desenvolvi aqui um simples aplicativos o qual utiliza banco de dados DBF..
no meu pc funciona tudo perfeitamente, mas quando coloco em outro PC da erro ao tentar abrir o Borland Database (não lembro bem do erro).. imagino eu q pq não tenha o database necessário no outro PC para rodar.. então, o qpreciso fazer para rodar no outro pc? alguma dll, instalar algo? ou o q?
Valew pessoal,
Rafael
Lipsil
Curtidas 0
Respostas
Carlosmielke
20/05/2004
me informa a menmsagem do erro, assim será mais facil de te ajudar
GOSTEI 0
Lipsil
20/05/2004
Kra, o erro eu não me lembro bem certinho não de como era. mas era tipo:
Error in Borland Database engine......
e tb não pode consiederar bem certinho esse erro já q eu uso o madexcept q personaliza o erro então tira ele um pouco do padrão......
então pra saber.. tipo, um pc q não tem nada a não ser o win98 por exemp´lo instalado.. ele precisa de mais alguma coisa pra rodar o software com banco de dados DBF?
(O erro deu no win98 e no winXP.. o erro não ocorreu num amigo q tem o delphi 6 instalado tb!)
Vlw!
Rafael Lippert
Error in Borland Database engine......
e tb não pode consiederar bem certinho esse erro já q eu uso o madexcept q personaliza o erro então tira ele um pouco do padrão......
então pra saber.. tipo, um pc q não tem nada a não ser o win98 por exemp´lo instalado.. ele precisa de mais alguma coisa pra rodar o software com banco de dados DBF?
(O erro deu no win98 e no winXP.. o erro não ocorreu num amigo q tem o delphi 6 instalado tb!)
Vlw!
Rafael Lippert
GOSTEI 0
Andcarpi
20/05/2004
Voce deve distribuir o BDE(Borland Database Engine) junto com a sua aplicacao.
se voce usa inno setup tem um exemplo na pagina deles, caso nao tem um artigo aki:
tah ai.......
se voce usa inno setup tem um exemplo na pagina deles, caso nao tem um artigo aki:
3- Como executar uma aplicação com Paradox sem tê-lo instalado na maquina. Enviado por Fabiano Novaes Ferreira fabianonf@ig.com.br
Cheguei no resultado final abaixo na necessidade de criar programas com bancos de dados que pudessem ser executados a partir de um Zip Drive ou de um Pen Drive. O problema era que a máquina onde o sistema poderia ser usado, não necessariamente tem o BDE instalado. Com as configurações abaixo você manda os arquivos do BDE no Zip e o sistema se encarrega de registrá-los se necessário (não estraga uma instalação já existente do BDE).
os arquivos do BDE abaixo listados podem estar nas seguintes pastas que a rotina funciona ... qualquer alteração dos caminhos é simples de configurar ... :
- Raiz do Zip numa pasta BDE (ou equipamento de armazenagem) X:\BDE
- Junto com o EXE do seu sistema X:\Sistema
- Numa pasta BDE dentro da pasta do seu sistema X:\Sistema\BDE
Arquivos Exenciais para o BDE:
idapi32.cfg (esse arquivo pode ter qualquer outro nome, desde que seja configurado no registro.)
idapi32.dll
bantam.dll
blw32.dll
idr20009.dll
charset.cvb
europe.btl
usa.btl
idasci32.dll (Driver ASCII)
iddbas32.dll (Driver DBase)
idodbc32.dll (Driver ODBC)
idpdx32.dll (Driver Paradox)
O BDE precisa de todos esses arquivos para funcionar. Foi a configuração minima que eu consegui.
eu criei a rotina abaixo para verificar a existencia do BDE na maquina
procedure Verifica_BDE;
const
Key_Root = HKEY_LOCAL_MACHINE;
Key_Data : Array[00..05, 01..03] Of String = ((´Software\Borland\Database Engine´, ´BDE_EXTERNAL´, ´0´),
(´Software\Borland\Database Engine´, ´DLLPATH´ , ´0´),
(´Software\Borland\Database Engine´, ´CONFIGFILE01´, ´1´),
(´Software\Borland\BLW32´ , ´BLAPIPATH´ , ´0´),
(´Software\Borland\BLW32´ , ´LOCALE_LIB1´ , ´5´),
(´Software\Borland\BLW32´ , ´LOCALE_LIB2´ , ´6´));
BDE_Files : Array[01..10] Of String = (´idapi32.cfg´, ´idapi32.dll´, ´idr20009.dll´, ´blw32.dll´, ´usa.btl´, ´europe.btl´, ´idpdx32.dll´, ´idasci32.dll´, ´iddbas32.dll´, ´idodbc32.dll´);
var
Status : Boolean;
Index : Integer;
Ind_Files : Integer;
BDE_Dir : String;
Registro : TRegIniFile;
begin
Try
Registro := TRegIniFile.Create();
Registro.RootKey := Key_Root;
If (Not Registro.KeyExists(Key_Data[0,1])) Or (( Registro.KeyExists(Key_Data[0,1])) And (Registro.ReadString(Key_Data[0,1], Key_Data[0,2], ´FALSE´) = ´TRUE´)) Then
Begin
For Index := 1 To 3 Do
Begin
Case Index Of
1 : BDE_Dir := ExtractFileDrive(ParamStr(0)) + ´\BDE\´;
2 : BDE_Dir := ExtractFileDir(ParamStr(0)) + ´\BDE\´;
3 : BDE_Dir := ExtractFilePath(ParamStr(0));
End;
Status := DirectoryExists(BDE_Dir);
If Status Then
For Ind_Files := Low(BDE_Files) To High(BDE_Files) Do
Status := Status And FileExists(BDE_Dir + BDE_Files[Ind_Files]);
If Status Then
Break;
End;
For Index := Succ(Low(Key_Data)) To High(Key_Data) Do
Begin
If Key_Data[Index,3] = ´0´ Then
Registro.WriteString(Key_Data[Index,1], Key_Data[Index,2], BDE_Dir)
Else
Registro.WriteString(Key_Data[Index,1], Key_Data[Index,2], BDE_Dir + BDE_Files[StrToInt(Key_Data[Index,3])]);
End;
Registro.WriteString(Key_Data[0,1], Key_Data[0,2], ´TRUE´);
End;
Finally
Registro.Free;
End;
end;
PS. Acrescentar no Uses do programa a biblioteca Registry
Quanto ao Alias, eu criei (a varios anos) uma rotina para criar o alias pra mim sempre que eu precisar ... eu uso a função :
procedure Cria_Alias(Parametros : Array Of Variant);
var
List_Aux : TStringList;
begin
If (Parametros[0] <> ´´) And (Parametros[1] <> ´´) Then
Begin
{Configura o parâmetro Local Share}
SetConfigParameter(´\SYSTEM\INIT\;LOCAL SHARE´ , ´FALSE´);
{Configura o parâmetro Net Dir}
SetConfigParameter(´\DRIVERS\PARADOX\INIT\;NET DIR´, Parametros[1]);
{Cria ou altera o Path do Alias}
List_Aux := TStringList.Create;
List_Aux.Clear;
List_Aux.Add(´PATH=´ + Parametros[1]);
If Not Session.IsAlias(Parametros[0]) Then
Session.AddAlias(Parametros[0], ´PARADOX´, List_Aux)
Else
Session.ModifyAlias(Parametros[0], List_Aux);
Session.SaveConfigFile;
List_Aux.Free;
End;
end;
Para usá-la basta chamar no on create de seu programa :
Verifica_BDE;
Cria_Alias([´Nome do Alias´, ´Pasta de Dados´]);
tah ai.......
GOSTEI 0