Cuando salte una excepción en ADO, verás que el mensaje que aparece te dice (normalmente) que es una excepción de la Clase EOLEException.
Una vez que sabes ésto puedes programar lo siguiente:
Código Delphi
[-]
try
...
...Post;
...
except
on E:EOleException do begin
MessageDlg(Format('Error: %s Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
end
else begin
...tratamiento de otros errores
end;
end;
Una vez que tengas esto y se produzca un error te saldrá el mensaje y el código; Si quieres afinar más, dentro el tratamiento de excepciones puedes hacer algo similar a ésto (a partir del código de error que te de):
Código Delphi
[-]
except
on E:EOleException do begin
if (E.ErrorCode = 111) then begin
...Error de clave primaria
end
else if (E.ErrorCode = 222) then begin
...Error en la sentancia SQL
end
else if (....) then begin
end;
end
else begin
...tratamiento de otros errores
end;
end;
En
este hilo de los foros puedes encontrar la lista de errores de ADO.