A ver...
Tengo una aplicación con dos tipos de bases de datos. Una de ellas está en Access y se utiliza para trabajar en forma local (por el momento). La otra está realizada en Firebird en un servidor remoto.
Deseo hacer que en el caso de que no exista una conexión activa a internet y no haya acceso al servidor de Firebird, el programa siga con su ejecución normal tras intentar conectarse tres veces.
Por el momento lo único que consigo es una excepción (EIBInterBaseError) que no soy capaz de controlar.
Código:
if intentos<3 then
begin
try
if DM.IBDb1.Connected=FALSE then
BEGIN
frmPortada.StatusBar1.Panels.Items[4].Text:='Servidor Remoto Cerrado';
TRY
DM.IBDb1.Connected:=TRUE;
intentos:=intentos+1;
timer1.Enabled:=TRUE;
EXCEPT
END;
END
ELSE
begin
frmPortada.StatusBar1.Panels.Items[4].Text:='Actualizando desde Servidor Remoto';
PingConexion('C');//Esto vuelca unos datos a la base de Firebird
end
except
end;
end;
Este es el código que utilizo para testear si hay conexión a Firebird. Está dentro de un TTimer que se ejecuta 1 segundo después de iniciar la aplicación.