PDA

Ver la Versión Completa : Detectar Borland Database Engine


sagarmar
19-12-2006, 10:05:24
Hola mi problema es:
Tengo una aplicación que necesita tener instalado el BDE para poder ejecutarse. He probado con este código que pensaba que comprobaba si estaba instalado el BDE y sino lo instalaba pero si no encuentra la carpeta Borland falla. Cómo puedo solucionarlo? Gracias por vuestro tiempo!

var
reg:TRegistry;
begin
reg:=TRegistry.Create;
with reg do begin
try
RootKey:=HKEY_LOCAL_MACHINE;
if OpenKey('\SOFTWARE\Borland\Database Engine', False) then begin
//ya tiene instalado el Borland
end
else begin
F_Instalar_BDE.ShowModal;
if F_Instalar_BDE.instalar_bde then
ShellExecute(0, 'open',PChar(path_exe+'\Borland Database Engine\setup.exe'), nil, nil, SW_SHOWNORMAL);
Close;
end;
finally
reg.Free;
end;
end;

lgarcia
19-12-2006, 16:36:38
Hola:

Me parece que otra alternativa pudiera ser ver si el fichero existe ya que el se instala normalmente en C:\Archivos de programa\Archivos comunes\Borland Shared\BDE y dado que exista entonces ejecutar lo que planteaste.

Saludos
Luis Garcia

luisgutierrezb
19-12-2006, 20:36:20
en swissdelphicenter encontre un tip para saber si el bde esta instalado, yo no uso bde y no lo eh probado, sin embargo aqui esta el tip:


uses
BDE;

function CheckBDEInstalled: Boolean;
begin
Result := (dbiInit(nil) = DBIERR_NONE)
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckBDEInstalled then
ShowMessage('BDE is installed.')
else
ShowMessage('BDE is not installed.')
end;

sagarmar
20-12-2006, 11:27:58
Muchas gracias!