Millones de registros para visual basic

Mi pregunta es sobre visual basic 6.0 -ado
Tengo una base de datos de 4 millones de registros lo cargo en el recordset pero para mostralos en una grilla se me hace imposible por el tamaño de registros . Como puedo mostrarlos, por partes (si es así cual es el código), o conoces algún control aparte del dbgrid que lo pueda hacer.

1 respuesta

Respuesta
1
Yo tengo un problemilla parecido.
¿Cuál es el tuyo exactamente? ¿Lentitud? ¿Error en la carga al grid?
¿Tienes qué cargar TODOS los registros o puedes cargar solo parte?
Hola gracias por el interés... el problema es :
1 Logro cargar la base en el recordset 2. Hago un additem del recordset en el FLEXGRID y se cuelga, no responde y eso que la pc es PIV CON 256 RAM, CON EL DBGRID pasa lo mismo .
3. Ha! Casi siempre sale un mensaje ¡Memoria insufuciente!.
Bueno lo que deseo es que si se puede cargar de alguna manera, de una forma rápida, o en algún otro control o por partes me sugieras la forma.
Pero no se como cargar una tabla por partes sin que tenga un id.
De verdad te rogaría que me ayudes. Gracias y disculpas por el palabreo
omar diaz
No se que haces exactamente con el additem.
Por otro lado usaría un datagrid, y lo haría así:
Option Explicit
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.ConnectionString = "DSN=MyODBC"
cn.Open
Set rs = New ADODB.Recordset
rs.Open "SELECT * FROM Ventas", cn, adOpenStatic, adLockReadOnly
Set Me.DataGrid1.DataSource = rs
End Sub
Private Sub Form_Unload(Cancel As Integer)
rs.Close
Set rs = Nothing
cn.Close
End Sub
He hecho una purba con una tabla de 1.000.000 de registros y un PIV con 256MB y va "bien", de todas formas puedes usar lo siguiente para controlar el numero de registros devueltos:
"SELECT TOP N * FROM Ventas ORDER BY Albaran"
Te devuelve los N primeros albaranes, tendrías que montarte algo para que en el scroll te recargue nuevos registros.
"SELECT TOP N PERCENT * FROM Ventas ORDER BY Albaran"
Te devuelve un N % de los registros...
Hola esta es la ultima pregunta referente a eso...
Pero si cojo el 10% de la base como hago para coger el sgt 10% sin coger el anterior 10% osea por parte ... Ha y la sentencia "SELECT TOP N * FROM Ventas ORDER BY Albarán" al igual que el PERCENT me coge los datos acumulándolos.
Finalmente la pregunta es coger una parte, verla, luego descargarla, luego coger la siguiente parte, etc
Disculpa por la molestia
omar diaz
Sabiendo que tomas los registros ordenados, podriasmos tomar los siguientes así:
"SELECT TOP N * FROM Ventas WHERE Albaran > " & sLast & " ORDER BY Albaran"
Siendo sLast una variable cargada con el valor del último registro de la primera consulta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas