Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
REFRESCAR LABEL EN WHILE
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje REFRESCAR LABEL EN WHILE 
 
hola tengo una conexion a Mysql, y necesito hacer una serie de procesos a los registros que traigo de la base, pero necesito poner en un LABEL el numero de registro que se esta procesando,  hice el siguiente codigo, pero mi LABEL no se refresca hasta que termina de recorrer los 162,777 registros, alguna idea de por que el label no se refresque conforme avanza el WHILE, este es mi codigo

PUBLIC SUB Button1_Click()

  DIM blob1 AS Blob
  DIM txt AS String
  DIM cuenta, i AS Integer
  Timer1.Enabled = FALSE
  rs = cn.exec("SELECT dato  FROM data_in")
  rs.MoveFirst
  cuenta = rs.Count
  i = 1
  WHILE i <= cuenta
    blob1 = rs!dato
    txt = blob1.Data
    blbl_recorrido.Text = i 'aqui es el problema no lo refresca
    
    PRINT i; 'aqui se ve que si avanza
    i = i + 1
    rs.MoveNext
  WEND

END
 



 
foreverjos - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: REFRESCAR LABEL EN WHILE 
 
Prueba ésto:


PUBLIC SUB Button1_Click()

DIM blob1 AS Blob
DIM txt AS String
DIM cuenta, i AS Integer
Timer1.Enabled = FALSE
rs = cn.exec("SELECT dato FROM data_in")
rs.MoveFirst
cuenta = rs.Count
i = 1
WHILE i <= cuenta
blob1 = rs!dato
txt = blob1.Data
blbl_recorrido.Text = i 'aqui es el problema no lo refresca

WAIT 0.1   'pausamos el programa una decima de segundo y  en ese tiempo se realizan todas las operaciones de vídeo pendientes.

PRINT i; 'aqui se ve que si avanza
i = i + 1
rs.MoveNext
WEND

END
 


Suerte
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: REFRESCAR LABEL EN WHILE 
 
Gracias si funciono le puse 0.001 de tiempo

ahora tengo otra pregunta hay alguna forma de liberar memoria durante el prioceso, ya que conforme avanza el recorrido el uso del CPU va en aumento hasta llegar al 100% alguna idea

Gracias y perdona las molestias





shordi escribió: [Ver mensaje]
Prueba ésto:


PUBLIC SUB Button1_Click()

DIM blob1 AS Blob
DIM txt AS String
DIM cuenta, i AS Integer
Timer1.Enabled = FALSE
rs = cn.exec("SELECT dato FROM data_in")
rs.MoveFirst
cuenta = rs.Count
i = 1
WHILE i <= cuenta
blob1 = rs!dato
txt = blob1.Data
blbl_recorrido.Text = i 'aqui es el problema no lo refresca

WAIT 0.1   'pausamos el programa una decima de segundo y  en ese tiempo se realizan todas las operaciones de vídeo pendientes.

PRINT i; 'aqui se ve que si avanza
i = i + 1
rs.MoveNext
WEND

END
 


Suerte

 



 
foreverjos - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: REFRESCAR LABEL EN WHILE 
 
Gracias si funciono le puse 0.001 de tiempo

ahora tengo otra pregunta hay alguna forma de liberar memoria durante el proceso, ya que conforme avanza el recorrido el uso del CPU va en aumento hasta llegar al 100% alguna idea

Gracias y perdona las molestias

Saludosss
 



 
última edición por foreverjos el Martes, 04 Octobre 2011, 17:14; editado 1 vez 
foreverjos - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: REFRESCAR LABEL EN WHILE 
 
No veo ningún error obvio en tu código. Pero no conozco muy bien el asunto de cómo se tratan internamente los campos blob. Prueba a hacer tú la limpieza, de manera que no se acumule la basura, es decir:

WHILE i <= cuenta
blob1 = rs!dato
txt = blob1.Data
blbl_recorrido.Text = i 'aqui es el problema no lo refresca

WAIT 0.1   'pausamos el programa una decima de segundo y  en ese tiempo se realizan todas las operaciones de vídeo pendientes.

PRINT i; 'aqui se ve que si avanza
i = i + 1
.... supongo que más o menos aquí harás tus tejemanejes con el campo blob.
.... después de eso
txt = nothing

rs.MoveNext
WEND
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: REFRESCAR LABEL EN WHILE 
 
foreverjos escribió: [Ver mensaje]
hay alguna forma de liberar memoria durante el proceso, ya que conforme avanza el recorrido el uso del CPU va en aumento hasta llegar al 100%


Vamos a ver, una cosa es la memoria y otra diferente es el uso de CPU. Si el uso de CPU llega hasta el 100%  durante la ejecución de tu código, será porque lo requiere el proceso, y eso no tiene una solución milagrosa... quizás estés manejando datos de un gran tamaño y una vez que entras en el bucle, pues ya no hay nada que hacer. Bueno, quizás cambiando el PC por otro más potente con muchos núcleos y todo eso,  

Otra cosa es que la memoria libre se reduzca sensiblemente, pero eso ya te lo ha explicado muy bien el amigo shordi.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron