Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-06-2021
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Smile [FireDAC] Desconexión a la Base de Datos

¿Qué tal estimados?

El escenario es el siguiente: Tengo una pequeña aplicación que va registrando eventos del equipo hacia el servidor. Es decir, está aplicación está conectada a una base de datos ubicada en un servidor.

Entonces de ocurrir un error en la conexión (se apagó el servidor, se desconecto el cable de red, etc.) la aplicación NO debe arrojar mensajes de error alguno a menos que tenga una barra de estado para esto. Qué detecte que ha perdido la conexión y que reintente cada X minutos sin intervención humana.

Estoy usando los componentes de FireDAC.

Eso. Gracias.
Responder Con Cita
  #2  
Antiguo 14-06-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Puedes implementar un simple try except y un timer que se ejecute cierto tiempo, por ejemplo:
Código Delphi [-]
try
  GuardarDatosEnServidor();
  UnTimer.enabled := false;
except
  UnTimer.enabled := true;
end;

procedure UnTimer.OnTimerTick(sender.....)   // ejemplo, cada minuto.
begin
  GuardarDatosEnServidor();
end;
Responder Con Cita
  #3  
Antiguo 14-06-2021
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Hola Casimiro,

Gracias por tu respuesta. Lo he intentado todo pero me sigue saliendo este evento

[FireDAC][Phys][FB]Connection lost to database
Responder Con Cita
  #4  
Antiguo 14-06-2021
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si está dentro del try except no debe salir nada, salvo que estés ejecutándolo desde delphi.
Responder Con Cita
  #5  
Antiguo 14-06-2021
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Hola, creo que ya estoy dando con la solución

FDConecction cuenta con estos eventos
Código Delphi [-]
OnRecover - to respond to the connection lost event and provide the next action to FireDAC.
OnLosted - fires when a connection was lost and not recovered.
OnRestored - fires when a connection was lost and recovered.

En OnLosted detengo o activo los Timer si así lo requiero.

En OnError capturo el error o tomo las medidas necesarias.
ekServerGone: ; // DBMS is not accessible due to some reason
Código Delphi [-]
 if (AException is EFDDBEngineException) and (EFDDBEngineException(AException).Kind = ekServerGone) then
    AException.Message := 'hola';

http://docwiki.embarcadero.com/Libra...dExceptionKind

Última edición por MAXIUM fecha: 14-06-2021 a las 20:17:37.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Filtrar Base de Datos FireDac pokexperto1 Conexión con bases de datos 6 03-10-2015 00:26:07
Problemas en base de datos por desconexión en red inalábrica egostar Varios 21 21-06-2007 01:11:14
Desconexion base de Datos ander Firebird e Interbase 6 05-08-2004 22:11:36
Desconexión de una base remota acertij022 Conexión con bases de datos 1 13-02-2004 15:33:38
Desconexion Base de Datos (URGENTE) charly Firebird e Interbase 4 28-05-2003 16:12:20


La franja horaria es GMT +2. Ahora son las 21:30:16.


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
Copyright 1996-2007 Club Delphi