Hola que tal, gracias por tu respuesta, la he probado, pero ahora tengo un error, al tratar de ejecutarlo de esa manera, el error es el siguiente:
Cannot perform this operation on a closet dataset.
ya revise mi datasource y mi zquery , y estan correctas, les mostrare mi metodo completo , espero me puedan ayudar, gracias.
Código Delphi
[-]
Zcompras.sql.Clear;
Zcompras.Close;
Zcompras.SQL.Add('SELECT Cantidad, CostoF, Subtotal, CostoAc,Clave FROM compras ');
Zcompras.open;
if Zcompras.RecordCount<>0 then begin
Zcompras.First;
if( Edit3.Text<> '') then
begin
While Not(Zcompras.Eof) do
begin
cantidad:= Zcompras.Fields[0].AsInteger;
precio:= Zcompras.Fields[1].AsFloat;
sub:= Zcompras.Fields[2].AsFloat;
anterior:= Zcompras.Fields[3].AsFloat;
clave:=Zcompras.Fields[4].asString;
distribuir:=strtofloat(Edit3.Text);
porcentaje:=(Precio/Updatesub)*100;
miparte:=(distribuir*porcentaje)/100;
CostoNuevo:=miparte/cantidad;
costoac:=trunc(anterior+CostoNuevo);
Zcompras.sql.Clear;
Zcompras.Close;
Zcompras.SQL.Add(' update compras set CostoAc = :costoac WHERE Clave = "'+clave+'"');
Zcompras.ParamByName('costoac').AsFloat:=costoac;
Zcompras.ExecSQL;
Zcompras.Next;
end;
end;
end;