In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

ProcessMessages

Foro de Xailer profesional en español
Responder
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

ProcessMessages

Mensaje por jose.luis »

Hola,
El uso de ProccessMessages en un bucle de este tipo:
DO WHILE !Eof()
Replace micampo WITH otroValor
ProcessMessages()
Skip()
ENDDO
Sobre una tabla de 25000 registros... ¿es correcto? ¿Altera el rendimiento?
Tengo entendido que en otros GUI's el uso intensivo de SysRefresh podía
provocar la caída del sistema :-)
Saludos,
José Luis Capel
Aicom Global System, S.L.
Valencia - España
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

ProcessMessages

Mensaje por jfgimenez »

José Luis,
> El uso de ProccessMessages en un bucle de este tipo:
>
> DO WHILE !Eof()
> Replace micampo WITH otroValor
> ProcessMessages()
> Skip()
> ENDDO
>
> Sobre una tabla de 25000 registros... ¿es correcto? ¿Altera el
> rendimiento?
> Tengo entendido que en otros GUI's el uso intensivo de SysRefresh podía
> provocar la caída del sistema :-)
La caida del sistema, no, de ninguna manera. Pero sí vas a notar una bajada
muy pronunciada del rendimiento. Lo correcto es hacerlo cada x registros,
p.ej. cada 100:
LOCAL n := 0
DO WHILE !Eof()
Replace micampo WITH otroValor
IF n++ % 100 == 0
ProcessMessages()
ENDIF
Skip()
ENDDO
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder