Cita:
Empezado por defcon1_es
Hola. Si declaras la variable CANTIDAD como INTEGER, no esperes que funcione con números fraccionarios...
Debes definirla de tipo double.
Código Delphi [-]
procedure TF_FACTURACION.DESHACERClick(Sender: TObject);
VAR CODIGO: String; //En otro hilo tratas los códigos como string, no sé si éste es el caso también
CANTIDAD: Double;
begin
CODIGO:=dm.Q_DET_FACT.FieldValues['CODIGO'];
CANTIDAD:=dm.Q_DET_FACT.FieldValues['CANTIDAD'];
DM.CONSULTA.CLOSE;
DM.CONSULTA.SQL.Clear;
DM.CONSULTA.SQL.Add('UPDATE STOCK SET CANTIDAD=CANTIDAD+:PARCANTIDAD WHERE COD_STOCK= :PARCODIGO'); DM.CONSULTA.ParamByName('ParCODIGO').AsString:=CODIGO; DM.CONSULTA.ParamByName('ParCANTIDAD').AsFloat:=CANTIDAD;
DM.CONSULTA.ExecSQL;
|
no me va a funcionar porque designo el valor de cantidad y codigo al las variables CODIGO Y CANTIDAD y luego los elimino asi:
Código Delphi
[-]
procedure TF_FACTURACION.DESHACERClick(Sender: TObject);
VAR
CODIGO: INTEGER;
CANTIDAD: DOUBLE;
begin
CODIGO:=dm.Q_DET_FACT.FieldValues['CODIGO'];
CANTIDAD:=dm.Q_DET_FACT.FieldValues['CANTIDAD'];
dm.Q_DET_FACT.Delete;DM.CONSULTA.CLOSE;
DM.CONSULTA.SQL.Clear;
DM.CONSULTA.SQL.Add('UPDATE STOCK SET CANTIDAD=CANTIDAD+'+INTTOSTR(CANTIDAD)+' WHERE COD_STOCK='+inttostr(CODIGO));
DM.CONSULTA.ExecSQL;