Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Query no se refresca (https://www.clubdelphi.com/foros/showthread.php?t=46422)

gcrispinh 31-07-2007 19:00:48

Query no se refresca
 
Buenas tardes amigos, tengo un problema:
En componente tquery tengo el siguiente codigo:

select status, count(fol_pag) as recibos, sum(total) as total
from pagos
where fec_pag = :fecha
and num_caj = :caja
and status='AC'
group by status

siendo :fecha y :caja dos variables que le paso para que haga la consulta. El query funciona bien, pero en estos dias he tenido el siguiente problema; que cuando sacan el corte con el query anterior la primera vez, falta el ultimo recibo, pero si lo sacan en otra maquina un poco despues, sale bien la suma del total sin faltar movimiento.
La forma en que lo mando llamar es la siguiente:
fQRCorte.qRecibos.Close;
fQRCorte.qRecibos.ParamByName('FECHA').AsDate := DateEdit1.Date;
fQRCorte.qRecibos.ParamByName('CAJA').AsInteger := StrToInt(ComboEdit1.Text);
fQRCorte.qRecibos.Open;
fQRCorte.fRepCorte.Preview;

Dicho query esta en un reporte.
Gracias.

BlueSteel 31-07-2007 20:49:58

Hola gcrispinh

una consulta, con que delphi y motor de base de datos trabajas?

según mi experiencia, te falta realizar un Commit despues del proceso de insertar, ya que esto te actualizará los datos en forma inmediata (se supone)

yo tube un problema similar trabajando con Interbase, pero a la transacción asociada le tube que activar la opción de Read Commit y eso me soluciono todo

Si trabajas con tablas planas (Dbase - Paradox), te sugiero que cierres la consulta y la ejecutes nuevamente...

algo así

Código:

Query.Close;
Query.Sql.Clear;
Query.Sql.Add('Select * From Tabla');
Query.Sql.Add('Where Campo=Var');
Query.Open;

bueno, espero que esto te sirva... y acuerdate de entregar más información de tu problema.. detalles.. y revisa la guia de estilo http://www.clubdelphi.com/foros/guiaestilo.php

BlueSteel 31-07-2007 20:57:13

Cita:

fQRCorte.qRecibos.Close;
fQRCorte.qRecibos.ParamByName('FECHA').AsDate := DateEdit1.Date;
fQRCorte.qRecibos.ParamByName('CAJA').AsInteger := StrToInt(ComboEdit1.Text);
fQRCorte.qRecibos.Open;
re-leyendo tu pregunta y fijandome en esta sentencia...no se si no la pusistes, pero te falta información...

que corresponde precisamente a

Código Delphi [-]
qRecibos.Close;
qRecibos.Sql.Clear;
qRecibos.Sql.Add('Select status, count(fol_pag) as recibos, sum(total) as total');
qRecibos.Sql.Add('from pagos');
qRecibos.Sql.Add('where fec_pag = :fecha  and num_caj = :caja');
qRecibos.Sql.Add('and status='AC' group by status');
qRecibos.Parameter[0].AsDate     := DateEdit1.Date;
qRecibos.Paremeter[1].AsInteger := StrToInt(ComboEdit1.Text);
qRecibos.Open;

:p

gcrispinh 31-07-2007 21:47:04

Disculpen las faltas de ortografía anteriores.
1.- El siguiente código se encuentra en un componente TQuery llamado qRecibos que se encuentra en el reporte:

select status, count(fol_pag) as recibos, sum(total) as total
from pagos
where fec_pag = :fecha
and num_caj = :caja
and status='AC'
group by status

2.- Lo mando llamar de la Forma que se llama fQRcorte de la siguiente manera:
fQRCorte.qRecibos.Close; //cierro el query
fQRCorte.qRecibos.ParamByName('FECHA').AsDate := DateEdit1.Date;//paso la fecha como parametro
fQRCorte.qRecibos.ParamByName('CAJA').AsInteger := StrToInt(ComboEdit1.Text);// paso el numero de caja como parametro
fQRCorte.qRecibos.Open; //abro el query
fQRCorte.fRepCorte.Preview; // muestro un preview del reporte

3.- Uso paradox (perdon por no haberlo puesto antes)

4.- El Query si funciona, aunque en ocasiones, hace mal la suma, quitando uno de los últimos recibos de pagos, por lo tanto, la suma del total, esta equivocada, pero despues de que generan el reporte y salen del sistema, vuelven a entrar y a generar el reporte de nueva cuenta y sale bien.

5.- Cada vez que se agrega un recibo, se hace commit, la tabla se actualiza en ese momento, aquí el problema es que estaba funcionando bien por varios meses, y esta fallando en estos dias, por ejemplo: fallo el martes y jueves, pero el lunes y miercoles no, ese es mi problema, espero me hayan entendido.
Gracias.

gcrispinh 31-07-2007 21:49:20

Version de delphi
 
Perdón, olvidé comentarles que uso delphi 5 enterprise con paradox version 7
Gracias

basti 31-07-2007 21:56:51

Puede que sea algo de la configuración del BDE. Supongo que lo tienes configurado para trabajar en red, sino busca "Paradox en red" en la sección de trucos.

Además de eso, configura el bde en SYSTEM->INIT->SQLQRYMODE y ponlo en SERVER en todos los equipos.


La franja horaria es GMT +2. Ahora son las 12:38:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi