Saludos amigos, miren lo que pasa es que estoy sumando la columna de una tabla, y lo logre, pero el problema esta es que cuando modifico el valor de uno de los valores que esta en esa tabla no me actualiza el dato, y siempre me va a dar como resultado el ultimo numero que sumó, ejemplo de lo que me esta pasando:
Tengo una tabla llamada ClienteAparte, manejo paradox, esta tabla contiene los siguientes campos:
Codigo________Nombre________Cantidad Pago________Fecha Pago
4 Pepito 2000 08/06/2008
5 Delp 1000 09/07/2008
especifico que tengo un Query y un Datasource, para poder sumar las columnas a continuacion describo lo que utilizo que es un Query un Datasource y un Datamodulo, aqui estan las propiedades de cada uno, para especificar a fondo todo:
Query Properties:
Activate : False
AutoCalcFields : True
AutoRefresh : False
CachedUpdate : True
Constrained : False
DatabaseName : bdgym(asi se llama mi base de datos)
DataSource :
Filter :
Filtered : False
[+]Filter Options : []
Name : QrySumar
ObjectView : False
ParamCheck : True
Params : [TParams]
RequesLive : False
SessionName :
SQL :
select * from ClienteAparte
Tag : 0
Unidirectional : False
UpdateMode : UpWhereAll
UpdateObject:
DataSource1 Porperties
AutoEdit : True
[+]DataSet : QrySumar
Enabled : True
Name : DataSource1
Tag : 0
y cree un boton en el formulario donde esta el DBgrid y contiene el siguiente codigo:
Código Delphi
[-]
procedure TfrmConsulPagoCliDia.Button1Click(Sender: TObject);
var total : double;
begin
dtmDatos.QrySumar.Active:= True;
dtmDatos.QrySumar.First;
total:=0;
while dtmDatos.QrySumar.Eof=False do
begin
total:=total+dtmDatos.QrySumar.fieldbyName('CliapCantidadPago').AsFloat;
dtmDatos.QrySumar.Next;
end;
ShowMessage(FloatToStr(total));
dtmDatos.QrySumar.UpdateRecord;
end;
bueno hasta esa parte del codigo suùestamente esta bien y funciona, por que digo supuestamente, por que cuando ejecuto el programa pasa lo siguiente:
Codigo________Nombre________Cantidad Pago________Fecha Pago
4 Pepito 2000 08/06/2008
5 Delp 1000 09/07/2008
me aparece el mensaje 3000 , perfecto me salio la suma, y lo mejor de todo cuando edito el valor del campo Cantidad Pago, me da el resultado que es, pero el problema es que cuando sale el mensaje del resultado, osea se ejecuta el ShowMessage(FloatToStr(total)) y le doy aceptar o lo cierro, sale el siguiente error:
Project Giros.exe raised exception class EDatabaseError with Message 'QrySumar: Dataset not in edit or insert mode'. Process stopped.Use Step or Run to Continue.
ok help
le doy click en ok, y me sale este otro mensaje:
QrySumar: Dataset not in edit or insert mode
si ven ese es mi problema, y si le quito el dtmDatos.QrySumar.UpdateRecord pues no me actualiza los valores editados y siempre me va a mostrar el ultimo y unico valor que sumo, por favor espero que me puedan colaborar, gracias por su tiempo y comprencion..