Código Delphi
[-]
with Form1.IBTable1 do begin
try
Post; except
on E: EIBInterBaseError do begin
Cancel; case E.IBErrorCode of
335544665: begin
end;
else
raise; end; end; end;
Aunque no entiendo claramente cuál es el problema, con la estructura que tienes, el sistema no debería bloquearse.

o tal vez lo que te haga falta es utilizar transacciones...