Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-11-2023
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Poder: 7
ArtPortEsp Va por buen camino
Manejo de errores de conexion con MySQL

Hola, amigos;

en una aplicación de Delphi 7 estoy queriendo manejar los errores de conexión perdida que por "tiempo de espera superado" les aparecen a los usuarios eventualmente.

Para no repetir una estructura Try...Except en todas las operaciones a la base de datos (OPEN, EXECUTE, DELETE, etc.) pensé crear un procedimiento en el DM al cual llamar y que desde ahí se manejara la excepción, aparentemente parece funcionar (aún no he remplazado todas las llamadas a la BD con ese procedimiento), pero estoy casi seguro que debe haber una mejor y más elegante forma de hacerlo, así que por favor, si después de revisar el código y analizando mi necesidad tienen alguna sugerencia para mejorarlo o de plano reemplazarlo, por favor coméntenlo.

Nota:
el código solo tiene las llamadas OPEN a la base de datos por el momento

Código Delphi [-]
procedure TDM.OperacionBD(xcontrol : TMyQuery; xoperacion : string);
var
     x : integer;
begin
     try
          if xoperacion='OPEN' then xcontrol.Open;
     except
          on E: EMyError do
          begin
               if Ansipos('connection',E.Message) > 0 then
               begin
                     MessageDlg(' Conexion a la BD caida, tratando de reconectar.', mtError, [mbOK], 0);
                    For x := 0  to 4 do
                    begin
                         DM.Dirdatos.Connect;
                         if DM.Dirdatos.Connected then Break;
                    end;
                    if DM.Dirdatos.Connected = false then
                    begin
                          MessageDlg('No fue posible reconectar la BD, revisa tu conexion a la red.', mtError, [mbOK], 0);
                         TerminateProcess(GetCurrentProcess, 0);
                         Exit;
                    end;
               end;
          end;
    end;
end;
Responder Con Cita
 



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
Manejo de errores con SQLite FGarcia Tablas planas 0 26-05-2014 19:39:32
Manejo De Errores En Bases De Datos FelipeDiaz Conexión con bases de datos 7 14-12-2007 22:47:05
manejo de errores douglas OOP 2 28-09-2007 12:54:32
Manejo de errores en Master Detail Carlos Hurtado Firebird e Interbase 2 03-11-2005 13:23:41
Manejo de errores en un procedimiento JavierO Varios 4 24-08-2005 20:40:28


La franja horaria es GMT +2. Ahora son las 05:57:19.


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