Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Intentar conexion FB en tiempo de ejecución (https://www.clubdelphi.com/foros/showthread.php?t=27569)

taita 24-11-2005 14:22:49

Intentar conexion FB en tiempo de ejecución
 
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.

rastafarey 24-11-2005 15:15:32

Resp
 
Código Delphi [-]
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
             //Codigo insertado
             On E: Exception Do  If (E Is EIBInterBaseError) Then
                 ShowMessage('Pon el error aqui')
                 //ShowMessage(E.Message) Con esto devuelves el error real  
             End Else
                ShowMessage('Error desconocido');
     end;
   end;

taita 25-11-2005 14:01:02

Gracias rastafarey por contestar.
Voy a probar lo que me dices.

taita 29-11-2005 18:26:04

Siento haber tardado tanto en contestar.
Funciona perfectamente. Gracias rastafarey.

rastafarey 30-11-2005 22:00:45

Resp
 
De nada y para eso estamos


La franja horaria es GMT +2. Ahora son las 19:34:41.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi