EDatabaseError
Hola Miguecrack, mira intente capturar la excepción del campo vacío requerido más no funciono, lo solucione de esta forma,
procedure TDataCatalogos.CatalogoPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
if (E is EDBEngineError) then
begin
if (E as EDBEngineError).Errors[0].Errorcode=9729 then
begin
// llave duplicada
MessageDlg('Clave repetida. Modifiquela. No se registrará.',
mtWarning,[mbOK], 0);
Abort;
end;
if ((E as EDBEngineError).Errors[0].Errorcode=9736) or ((E as EDBEngineError).Errors[0].Errorcode=9733) then
begin
// Valor fera de rango o registro maestro inexistente
MessageDlg('ERROR GRUPO NO EXISTENTE .',
mtWarning,[mbOK], 0);
Abort;
end;
end
Else
Begin
MessageDlg('error en registro '+E.Message, MtWarning,[mbOk], 0);
MessageDlg('El campo debe tener un valor. ',MtWarning,[mbok],0);
end;
end;
El numero del error si es el 9732 pero no lo captura, el error parte de un EDabaseError, pero no lo identifica como EDBEngineError que es un desenciente de EDatabaseError. El evento obvio va sobre una tabla de paradox (como atinadamente lo intuiste) en un DataModule.
De antemano agradezco tu tiempo.
Saludos
Lina
procedure TDataCatalogos.CatalogoPostError(DataSet: TDataSet;
E: EDatabaseError; var Action: TDataAction);
begin
if (E is EDBEngineError) then
begin
if (E as EDBEngineError).Errors[0].Errorcode=9729 then
begin
// llave duplicada
MessageDlg('Clave repetida. Modifiquela. No se registrará.',
mtWarning,[mbOK], 0);
Abort;
end;
if ((E as EDBEngineError).Errors[0].Errorcode=9736) or ((E as EDBEngineError).Errors[0].Errorcode=9733) then
begin
// Valor fera de rango o registro maestro inexistente
MessageDlg('ERROR GRUPO NO EXISTENTE .',
mtWarning,[mbOK], 0);
Abort;
end;
end
Else
Begin
MessageDlg('error en registro '+E.Message, MtWarning,[mbOk], 0);
MessageDlg('El campo debe tener un valor. ',MtWarning,[mbok],0);
end;
end;
El numero del error si es el 9732 pero no lo captura, el error parte de un EDabaseError, pero no lo identifica como EDBEngineError que es un desenciente de EDatabaseError. El evento obvio va sobre una tabla de paradox (como atinadamente lo intuiste) en un DataModule.
De antemano agradezco tu tiempo.
Saludos
Lina
1 respuesta
Respuesta de miguecrack
1