Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki
Capturar errores de edición - edit - y validación - post - de una tabla y mostrar un mensaje personalizado - Delphi
Lenguaje de programación Borland Delphi


Ejemplo que muestra cómo capturar errores de Base de Datos Paradox en Delphi, utilizando los eventos "EditError" y "PostError" del componente TTable:

En el evento "EditError" del TTable de nuestro módulo de datos colocaremos el siguiente código:

procedure TDatos.TDistribuidorEditError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  if e is EDBEngineError then
  begin
    case EDBEngineError(E).Errors[0].ErrorCode of
      10241 : begin
        messagedlg ('El registro actual está siendo modificado por el usuario: ' +
            UpperCase(copy(e.Message, pos('User:', E.Message) + 6, length(e.Message))) + chr(13) +
            chr(13) + ' Espere a que éste termine para modificarlo.', mterror, [mbok], 0);
      end;
      8708 : begin
        messagedlg ('El registro actual ha sido ELIMINADO por otro usuario.' +
            ' Pulse refrescar para actualizar los cambios.', mterror, [mbok], 0);
      end;
      9727 : begin
        messagedlg ('Ya existe un producto con este nombre.' +
            ' Cambie el nombre o cancele las modificaciones.', mterror, [mbok], 0);
      end;
     else
       messagedlg ('Se ha producido un error al intentar editar el registro.',  mterror, [mbok], 0));
    end;
    Action := daAbort;
  end;
end;
En el evento "PostError" del TTable de nuestro módulo de datos colocaremos el siguiente código:
procedure TDatos.TDistribuidorPostError(DataSet: TDataSet;
  E: EDatabaseError; var Action: TDataAction);
begin
  if e is EDBEngineError then
  begin
    case EDBEngineError(E).Errors[0].ErrorCode of
      9729 : begin
        fp.mserror ('Ya existe un registro con este valor.' +
            ' Cámbielo o cancele las modificaciones.',
            'Valor duplicado...');
      end;
     else
       fp.mserror ('Se ha producido un error al intentar guardar los datos del registro actual.',
           'Error al validar...');
    end;
    Action := daAbort;
  end;
end;




Publicado el: 2005-05-31

Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A