Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Captura error tipo EDataBaseError (https://www.clubdelphi.com/foros/showthread.php?t=94539)

Jose Roman 25-03-2020 01:14:26

Captura error tipo EDataBaseError
 
Cordial saludo,

Tengo el siguiente código el cual muestra un mensaje del error al no haberse digitado una valor en el campo ID_CLI (cliente):
Código Delphi [-]
procedure TwDataModule.qOrdenPostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
  if (E is EDatabaseError) then
  case EFDDBEngineException(E).ErrorCode of
    341346812 : scMessageDlg('El campo CLIENTE es obligatorio',mtError,[mbOk],0);
  end;
end;

Funciona bien y muestra el mensaje deseado, solo que despues de este mensaje aparece este otro mensaje y no se como capturarlo y evitar que se muestre:



Como evito que muestre este mensaje, se que debe faltar algo en el codigo pero no se que es. Gracias de antemano.

ecfisa 25-03-2020 10:07:52

Hola.

Intentalo de este modo:
Código Delphi [-]
procedure TwDataModule.ShowEFDBError(E: EDatabaseError);
begin
  case EFDDBEngineException(E).ErrorCode of
    341346812 : scMessageDlg('El campo CLIENTE es obligatorio',mtError,[mbOk],0);
    //...     :
    //...     :
    else  
      ShowMessageFmt('%s %d',[EFDDBEngineException(E).Message, EFDDBEngineException(E).ErrorCode]);
  end;
  Abort; 
end;

procedure TwDataModule.qOrdenPostError(DataSet: TDataSet; E: EDatabaseError;
  var Action: TDataAction);
begin
  if (E is EDatabaseError) then
    ShowEFDBError(E);
end;

Saludos :)


La franja horaria es GMT +2. Ahora son las 15:54:34.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi