Probando y probando he encontrado lo que buscaba
Código Delphi
[-]
procedure TForm1.Button3Click(Sender: TObject);
var
iCodigoProducto,iCodigoFactura,iCantidad : integer;
fPrecio : Double;
begin
iCodigoProducto:=StrToInt(edProducto.Text);
iCodigoFactura:=StrToInt(edFactura.Text);
iCantidad:=StrToInt(edCantidad.Text);
fPrecio:=StrToFloat(edPrecio.Text);
ZConnection1.StartTransaction;
try
zDetalle.Insert;
zDetalleProdCodigo.Value:=iCodigoProducto;
zDetalleFactCodigo.Value:=iCodigoFactura;
zDetalleCantidad.Value:=iCantidad;
zDetallePrecio.Value:=fPrecio;
zDetalle.Post;
ZConnection1.Commit;
except
on E:EZDatabaseError do begin
case E.ErrorCode of
1062: begin
ShowMessage('Duplicado'); end
else
ShowMessage('Error codigo: '+IntToStr(E.ErrorCode)+' - '+E.Message);
end;
ZConnection1.Rollback;
zDetalle.Cancel;
end;
end;
end;
Gracias a todos por su interés.
Saludos