Código Delphi
[-]
Try
ExecSQL;
except on E:EDBEngineError do begin
If E.Errors[0].ErrorCode = 9729 then begin
Showmessage('Ya existe');
end else begin
raise;
end; end; End;
Lo que tienes que manejar es el código de error. En mi caso por utilizar SQL Server, el error es el 9729 para una llave duplicada (única); tienes que identificar que código de error te arroja firebird y/o postrgeSQL en cada uno de los casos que quieres identificar.
Teniendo esto, podrías utilizar un "Case E.Errors[0].ErrorCode Of" para cada caso en particular.
Bienvenido a los foros, dale una leída a
este enlace para tener mayor información.