PDA

Ver la Versión Completa : Desconexion base de Datos


ander
04-08-2004, 09:54:07
Tengo un servidor con una Base de datos de Firebird,conectado con 6 clientes
Los accesos de los clientes se realizan por medio de delphi,con IbDatabase y
IBTransaction.
Si el Servidor cae,por cualquier motivo ¿ me podriais decir, como puedo saber si ha caido y como puede reiniciar la comunicacion con el servidor,usando los componentes de delphi 7 ?
Gracias.

guillotmarc
04-08-2004, 12:23:30
Hola.

Si activas el servicio IB Guardian en el Servidor, cada vez que se caiga el Servidor de Firebird volverá a arrancarlo.

Saludos.

ander
04-08-2004, 14:02:08
El problema,no es ese.Suponte que el programa de delphi esta mandando y recibiendo datos al servidor,y en un momento en concreto esa comunicacion cesa (por cualquier causa).El programa si no sabe de alguna manera que se ha desconectado de la red,estara intentando mandar y recibir datos.
Lo que quiero saber es si existe alguna instruccion con los componentes de delphi para controlar esa desconexion de la base de datos .

guillotmarc
04-08-2004, 14:24:33
Hola.

Que yo conozca no, aunque no he utilizado componentes específicos para Interbase/Firebird, como los IBX, IBO, FibPlus, UIB, ... Quizá tengan alguna opción de este tipo, pero no la conozco.

Saludos.

guillotmarc
04-08-2004, 15:13:08
Hola.

Justamente estoy probando los FibPlus para una nueva aplicación, y parece que permiten trabajar como deseas.

http://www.devrace.com/en/fibplus

Mira el ejemplo (en Free Trial Download, Exemples) : ConnectionLost example

Saludos.

ander
04-08-2004, 15:43:46
Ahora mirare el ejemplo y espero que me sirva.
Gracias por todo.

gendelphi
05-08-2004, 22:11:36
Tambien podrias capturar todas las excepciones que genere tu aplicacion y tratarla como desees.
en la seccion private de tu form principal puedes poner:

procedure MyException(Sender: TObject; E: Exception);

en el evento OnCreate de tu form

Application.OnException:=MyException;

y en su implementacion realizas la accion que desees:

procedure TForm1.MyException(Sender: TObject; E: Exception);
begin
//...
end;