Por curiosidad, trabajando con FieldByName ocurre lo mismo??
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
ZQuery1.Open;
try
begin
ZQuery1.Edit;
ZQuery1.FieldByName('CODIGO').Value := Edit1.Text;
ZQuery1.Post;
end
except
ZQuery1.Cancel;
end;
end;
Respecto a Try como lo usas lo único que hace es capturar el error y no mostrarlo, por lo cual no se cumplirá el cambio pedido.