FoxPro/Visual FoxPro - Reporte mas rapido

 
Vista:
sin imagen de perfil

Reporte mas rapido

Publicado por VICTOR PEREZ (278 intervenciones) el 20/04/2011 00:39:57
Hola amigos,

Tengo en mi sistema dos formas de relizar un reporte al hacer click en Imprimir.

LA primera es

SELECT * FROM AlmCja WHERE ((fecha >= thisform.txtFechaInic.value .and. fecha <= thisform.txtFechaFinal.value) .and. empty(sit)) INTO CURSOR _AlmCja
INDEX ON DTOC(FECHA) + CLIENTE TAG FECHAPTE
REPORT FORM diariod_fecha noeje TO PRINTER PROMPT preview


LA segunda es

Sele AlmCJA
Set order to tag FECHAPTE
REPO FORM DIARIOD_FECHA NOEJE TO PRIN prompt preview for ;
(fecha >= thisform.txtFechaInic.value .and. fecha <= thisform.txtFechaFinal.value) .and. empty(sit)

Pero observo que està muy lento el asunto. Quisiera saber cual de los metodos en su experiencia es mas rapido y si existe otra forma de hacer el reporte que la data a cargar o mostrar se haga mas rapido.

La Tabla tiene 37000 registros.

Sus opiniones son bienvenidas.



Victor - Panama -
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Reporte mas rapido

Publicado por alberto (404 intervenciones) el 20/04/2011 03:07:05
hola victor como andas , yo cre que el cursor temporal deberia ser mas rapido si lo optimizas bien , el for a mi me ha pasado lo mismo cuando son muchos registros en medio lento.
te cuento que estoy haciendo pruebas con mysql como vos y esta bueno , es super raripo remotamente.
mi idea es reenplazar las dbf, tambien probe firebird que es mas facil y veloz tambien
esto usando hamachi como coneccion entre equipos y odbc en la maquina cliente.
saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Mauricio
Val: 471
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Reporte mas rapido

Publicado por Mauricio (1541 intervenciones) el 20/04/2011 15:11:31
Podrias probar con el ORDER BY:

SELECT * FROM AlmCja WHERE BETWEEN (fecha, thisform.txtFechaInic.value, THISFORM.txtFechaFinal.value) AND empty(sit)) ORDER BY DTOC(fecha), cliente INTO CURSOR _AlmCja
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Reporte mas rapido

Publicado por xx (378 intervenciones) el 20/04/2011 17:41:04
Otra cosa que podrias probar es indexar el campo fecha de tu tabla (AlmCja), y obviamente probar con las dos alternativas que propusiste a ver cual va mejor.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Reporte mas rapido

Publicado por victor perez (278 intervenciones) el 20/04/2011 22:45:59
Gracias por sus comentarios. Habia olvidado el ORDER BY.

La tabla esta indexada por fecha y por dtos(fecha) + cliente.

Voy a hacer ensaños con el select

De nuevo, muchas gracias

Victor - Panama -
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar