Ver Mensaje Individual
  #4  
Antiguo 15-09-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - Espańa
Posts: 18.286
Reputación: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Bueno, sería algo así:

Código Delphi [-]
 
   ...
   // Comienza el bloque de proteccion
   try
     Tabla1.Post;  // Supongamos que ésto genera excepcion
   except
     on E:EDBEngineError do begin
       // Error de Base de Datos....
       // Para afinar más puedses intentar saber de qué tipo es el erorr...
       if ((E as EDBEngineError).Errors[0].Errorcode = eKeyViol) then begin
          Application.MessageBox('Imposible dar alta ese registro 
                                          ya  existe','Atención',mb_Ok +
                                           mb_IconQuestion);
       end
       else if....
          // puedes capturar el resto de la misma forma...
       end;
     end
     else begin
       raise;   // dejamos que siga....
     end;
   end;

Las constantes para los errores más comunes:
  • eKeyViol = 9729;
  • eRequiredFieldMissing = 9732;
  • eForeignKey = 9733;
  • eDetailsExist = 9734;
  • eSqlGralerror = 13059;
No lo he compilado, espero no haber cometido muchos errores; Pruébalo y si tienes problemas ya dirás...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita