Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Repetitiva mas rapida

Estas en el tema de Repetitiva mas rapida en el foro de Visual Basic clásico en Foros del Web. Un saludo amigos, tengo una duda y es para llenar un listview en modo reporte con unos 7Mil registros... no se como seria conveniente, si ...
  #1 (permalink)  
Antiguo 02/03/2010, 07:14
Avatar de smoke001  
Fecha de Ingreso: enero-2008
Mensajes: 83
Antigüedad: 16 años, 10 meses
Puntos: 1
Repetitiva mas rapida

Un saludo amigos, tengo una duda y es para llenar un listview en modo reporte con unos 7Mil registros...

no se como seria conveniente, si un for next o un while do

actualmente lo uso de esta manera con for:

Set Dbr1 = Datos.Datos.Execute ("Select * from Rec")


For A = 1 To Dbr1.RecordCount


Set Lista = l1.ListItems.Add(, , Dbr1(1), , 0)
Lista.SubItems(1) = Dbr1(0)
Lista.SubItems(2) = Dbr1(3)
Lista.SubItems(3) = Dbr1(4)
Lista.SubItems(4) = Dbr1(5)
Lista.SubItems(6) = Dbr1(7)
Lista.SubItems(5) = D6(A)

If A <> 0 Then
Dbr1.MoveNext
End If

DoEvents
Barra1.Value = A

Next A


pero lleva mucho tiempo cargar la lista con muchos registros.!! no se que de otra manera me recomiendan hacer el llenado o algun control mas optimizado para esto, antes usaba MSFlexGrid pero era peor de lo lento...

muchas gracias
  #2 (permalink)  
Antiguo 03/03/2010, 08:15
 
Fecha de Ingreso: enero-2007
Ubicación: 9 de julio
Mensajes: 111
Antigüedad: 17 años, 10 meses
Puntos: 2
Respuesta: Repetitiva mas rapida

Hola.

Yo para casos asi utilizo el componente MSHFlexgird y a la propiedad DataSource le asigno el contenido de la busqueda (asi evito recorrer uno por uno y obviamente es mucho mas rapido)

Mi MSHFlexgird se llama Flex y lo utilizo asi.

Código:
Set flex.DataSource = rs 

'Rs es el resocrset. Equivlaente a tu Dbr1 creo
Espero te sirva
  #3 (permalink)  
Antiguo 03/03/2010, 09:14
Avatar de Sergestux  
Fecha de Ingreso: agosto-2007
Ubicación: Tapachula
Mensajes: 1.218
Antigüedad: 17 años, 3 meses
Puntos: 20
Respuesta: Repetitiva mas rapida

Cita:
Iniciado por smoke001 Ver Mensaje
Set Dbr1 = Datos.Datos.Execute ("Select * from Rec")

For A = 1 To Dbr1.RecordCount

...

If A <> 0 Then
Dbr1.MoveNext
End If

Next A
En un for con una sola instruccion que le quites ya ahorraste algo de tiempo, no le veo sentido a esa comparacion, ya que inicias el valor de A a partir de 1, por lo que nunca valdra 0.
Por otro lado a menos que necesites hacer algo con esos datos antes de presentarlos es mejor la opcion que te presentaron aca arriba.

Etiquetas: mas, rapida, repetitiva
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:34.