Ver Mensaje Individual
  #6  
Antiguo 15-08-2015
Camilo Camilo is offline
Miembro
 
Registrado: jun 2007
Posts: 149
Reputación: 20
Camilo Va por buen camino
Hola recapitulo para ubicarnos en donde voy.

Si hago esto entonces me inserta o me actualiza bien la primera vez pero si ya existe el registro entonces me actualiza sin sumarme los nuevos valores de cantidad y precio.
Código Delphi [-]
procedure TFCargaFactura.Button1Click(Sender: TObject);
begin
  DBGridEh1.DataSource.DataSet.First;
  while not (DBGridEh1.DataSource.DataSet.Eof) do
  begin
    with IBQActualizaInventarios do
    begin
      UpdateInventory(IBQueryTmp, DbGrideH1.Columns[0].Field.AsString,
        DbGrideH1.Columns[2].Field.AsInteger, DbGrideH1.Columns[3].Field.AsFloat);
      IBQActualizaInventarios.Close;
      ParamByName('CODIGO_PRODUCTO').AsString:= DbGrideH1.Columns[0].Field.AsString;
      ParamByName('CATEGORIA').AsString:= DbGrideH1.Columns[4].Field.AsString;
      ParamByName('NOMBRE_PRODUCTO').AsString:= DbGrideH1.Columns[1].Field.AsString;
      ParamByName('REFERENCIA_PRODUCTO').AsString:= DbGrideH1.Columns[5].Field.AsString;
      ParamByName('CANTIDAD').AsInteger:= DbGrideH1.Columns[2].Field.AsInteger;
      ParamByName('PRECIO').AsFloat:= DbGrideH1.Columns[3].Field.AsFloat;
      ParamByName('Auditoria').AsString:=Edit1.Text;
      ParamByName('Fecha_Auditoria').AsDateTime:= StrToDate(MaskEdit1.Text);
      IBQActualizaInventarios.Open;
      DBGridEh1.DataSource.DataSet.Next;
    end;
  end;
  DataModule1.IBT1.CommitRetaining;
  DataModule1.IBTInventario.close;
  DataModule1.IBTInventario.Open;
  Showmessage('EL INVENTARIO SE ACTUALIZO CON EXITO');
end;

Y si hago esto entonces me acrtualia perfecto pero si el registro ya existe si no existe no lo inserta.
Código Delphi [-]
procedure TFCargaFactura.BitBtn1Click(Sender: TObject);
begin
  DBGRidEh1.DataSource.DataSet.First;
  while not DBGridEh1.Eof do
  begin
    UpdateInventory(IBQueryTmp, DbGrideH1.Columns[0].Field.AsString,
      DbGrideH1.Columns[2].Field.AsInteger,DbGrideH1.Columns[3].Field.AsFloat);
    DBGridEh1.DataSource.DataSet.Next;
  end;
  DataModule1.IBT1.CommitRetaining;
end;

Este el el llamado de la funcion que ecfisa expone arriba.

Entonces necesito combinar las dos. es decir si no esta el registro entonces creelo pero si esta entonces actualice los valores cantidad y precio.

Gracias por la ayuda que pueda recibir.

Última edición por ecfisa fecha: 15-08-2015 a las 23:33:39. Razón: corregir identación para mejor visualización
Responder Con Cita