Fórum Pq meu DB não pega nos outros PCs? #233445

20/05/2004

0

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


Lipsil

Lipsil

Responder

Posts

21/05/2004

Carlosmielke

me informa a menmsagem do erro, assim será mais facil de te ajudar


Responder

Gostei + 0

21/05/2004

Lipsil

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


Responder

Gostei + 0

21/05/2004

Andcarpi

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:


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.......


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar