PDA

Ver la Versión Completa : Se puede realizar una consulta a un ClientDataset ?


oscarac
19-07-2011, 16:04:56
tengo un ClientDataSet, donde almaceno datos (como cuando se ingresa una factura o un asiento contable) y recien los paso a la base de datos cuando presiono en el boton que dice Grabar

pero mientras voy agregando informacion, necesito ir sumando los campos que se deban sumar (ejemplo -> Totales)

lo que hago ahora es recorrer la tabla desde el principio hasta el final, cuando son pocos registros, casi ni se nota, pero cuando hablamos de muchos registros, hay un tiempo de espera

habria la posibilidad de ejecutar una consulta sobre este ClienteDataSet


Select Sum (Total) from.........


o existe alguna otra forma?

gracias

cecam
19-07-2011, 17:11:45
Mirate los aggregate de un clientdataset, permiten sum, avg, count, max y min . . .


function aggregateCDS(cds:TClientDataSet; const expression:string; const valorPorDefecto:currency):currency;
var
agg:TAggregate;
begin
agg:=TAggregate.Create(cds.Aggregates,cds);
agg.Expression:=expression;
agg.Active:=True;
if not VarIsNull(agg.Value)
then Result:=agg.Value
else Result:=valorPorDefecte;
agg.Free;
end;


Saludos!

oscarac
19-07-2011, 17:36:31
justo revisando en Delphi al Limite encontre la solucion y es como tu mencionas cecam
gracias