Detección de errores

Hola quisiera saber como puedo hacer para que cuando capturo datos en un dbgrid y se duplique la llave primaria mande un mensaje de error especificando que ya existe ese dato y no truen la aplicación.
La base de datos esta en access
Utilizando delphi 4

1 respuesta

Respuesta
1
Los errores que tu quieres detectar son los errores de base de datos, que pueden ser:
- Violación de clave primaria
- Campo requerido
- Violación de clave ajena
...
Para controlar los errores en estos campos, debes de hacerlo en los eventos del TTable que utilices para el dbgrid, te pongo un ejemplo:
Para una tabla clientes, para controlar los errores al guardar utilizaría el siguiente evento en OnpostError:
procedure Tdm1.CLIENTESPostError(DataSet: TDataSet; E: EDatabaseError;
var Action: TDataAction);
var
error:Integer;
begin
if (E is EDBEngineError) then
begin
error:=(E as EDBEngineError).Errors[0].Errorcode;
case Error of
eKeyViol:
begin
Application.messagebox('Imposible grabar, registro (clave) existente','Peligro',mb_ok+mb_iconwarning);
Action:=daAbort;
end;
end;
end;
end;
Siendo ekeyviol el código 9729.
En resumen lo que debes de hacer para controlar los errores es utilizar los eventos del ttable, -onposterror, ondeleteerror,...-
Espero no haberte, quitado mucho tu tiempo, con mi duda, te doy las gracias por contestarme y ayudarme a resolver mi problema, le pondré ganas para aprender delphi y así poder ayudar a otras personas, a resolver sus dudas.
gracias de nuevo...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas