Ver Mensaje Individual
  #1  
Antiguo 16-11-2023
ArtPortEsp ArtPortEsp is offline
Miembro
 
Registrado: may 2018
Ubicación: Mexico
Posts: 151
Reputación: 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