Hola marcy y bienvenido a los foros de Club Delphi.
Cita:
intenté con este código:
try
alumnos.Delete;
finally
begin
Showmessage('No se puede eliminar el registro');
end;
end;
|
Te pongo un equivalente:
Código Delphi
[-]
try
Alumnos.Delete;
except
on E:Exception do
if E is EDBEngineError then MessageDlg(Format('%s %d',[EDBEngineError(E).Message,
EDBEngineError(E).Errors[0].ErrorCode]),mtError,[mbOk],0)
else if E is EDatabaseError then MessageDlg(E.Message,mtError,[mbOK],0);
end;
Si también intentaramos obtener el código de error de un servidor SQL por ejemplo Interbase, sería:
Código Delphi
[-]
try
Alumnos.Delete;
except
on E:Exception do
if E is EIBInterbaseError then MessageDlg(Format('%s %d',[EIBInterbaseError(E).Message,
EIBInterbaseError(E).IBErrorCode]),mtError,[mbOk],0)
else if E is EDBEngineError then MessageDlg(Format('%s %d',[EDBEngineError(E).Message,
EDBEngineError(E).Errors[0].ErrorCode]),mtError,[mbOk],0)
else if E is EDatabaseError then MessageDlg(E.Message,mtError,[mbOK],0);
end;
Lamentablemente no trabajo con MySQL, por lo que no sé de que manera obtener el código del mismo. Pero de todas formas el error será captado por
EDatabaseError.
La Cara Oculta de Delphi 4 dedica un capítulo al tratamiento de las excepciones. Lo podes descargar del
FTP de Club Delphi.
Un saludo.