Ver Mensaje Individual
  #1  
Antiguo 26-06-2008
Avatar de BuRtOn
BuRtOn BuRtOn is offline
Miembro
 
Registrado: ene 2008
Ubicación: Bucaramanga
Posts: 215
Reputación: 17
BuRtOn Va por buen camino
Problema en suma de columnas y con el Qry

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..
Responder Con Cita