Ver Mensaje Individual
  #4  
Antiguo 15-08-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Camilo.

Creo que podrías hacerte un procedimiento similar a este ejemplo:
Código Delphi [-]
procedure UpdateInventory(qy: TIBQuery; const Cod: string;
  const Cant: Integer; const Prec: Currency);
begin
  qy.Close;
  qy.SQL.Clear;
  qy.SQL.Add('UPDATE INVENTARIO');
  qy.SQL.Add('SET CANTIDAD = CANTIDAD + COALESCE(:CANTIDAD, 0),');
  qy.SQL.Add('PRECIO = PRECIO + COALESCE(:PRECIO, 0)');
  qy.SQL.Add('WHERE CODIGO_PRODUCTO = :CODIGO');
  qy.ParamByName('CODIGO').AsString    := Cod;
  qy.ParamByName('CANTIDAD').AsInteger := Cant;
  qy.ParamByName('PRECIO').AsCurrency  := Prec;
  qy.ExecSQL;
end;

Ejemplos de llamada,

Agrega 4 unidades e incrementa 15.5 el precio del producto código '1':
Código Delphi [-]
  UpdateInventory(IBQueryTmp, '1', 4, 15.5);

Decrementa 4 unidades y decrementa 15.5 el precio del producto código '1':
Código Delphi [-]
  UpdateInventory(IBQueryTmp, '1', -4, -15.5);

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita