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