Lenguaje de programación Borland Delphi
Cuando usamos controles DataAware tales como DBNavigator o DBGrid, y se pueden añadir registros, es posible que el usuario introduzca dos registros con el mismo campo clave, generándose por tanto una excepción.
¿Como podemos capturar dicha excepción?, dado que el Post lo hace el correspondiente control de base de datos (DBGrid, etc)
Pues muy fácil, los errores generados a la hora de hacer el Post en una tabla, son centralizados en el evento OnPostError del propio TTable... sólo tendremos que usarlo.
Por ejemplo, metiendo un código similar a éste:
procedure TForm1.Table1PostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
begin
{Error in the Post}
ShowMessage('Error al dar de alta un nuevo registro'+#13+
'Motivo:'+E.Message);
Action:=daAbort;
end;
Con el parámetro Action, podemos especificar que es lo que hay que hacer con el Post que generó el error.
En el ejemplo, utilizamos daAbort para abortar dicho Post.
Publicado el: 2003-09-11