Necesito ayuda en mi base de datos con visual basic 6.0 -ado

Mi pregunta es sobre visual basic 6.0 -ado
Tengo una base de datos de 4 millones de registros a mas , cargo en el recordset pero para mostra los registros en una grilla se me hace imposible por el tamaño de registros . Como puedo mostrarlos , por partes (si es asi cual es el codigo), o conoces algun control aparte del datagrid que lo pueda hacer.
1 Logro cargar la base en el recordset
2. Hago la carga 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 rapida, o en algun otro control o por partes me sugieras la forma.
Pero no se como cargar una tabla por partes sin que tenga un id.
... La idea es cargar una parte , descargarla , cargar otra, descargarla, etc
De verdad te rogaria que me ayudes. Gracias y disculpas por el palabreo
omar diaz

1 Respuesta

Respuesta
1
¿Metes los 4 millones de registros en el recordset?
¿Cuánto tarda en hacerte la consulta?
Bueno, supongo que los 4 millones de registros tendran algun tipo de clave.
Haz las consultas como la particion de la clave o con rownum (si estas en Oracle) o TOP (si es en ms access)
Ejemplo (de una consulta anterior) :
SELECT TOP 25 * FROM tbl
Para que te devuelva los 25 primeros.
La documentacion la saque de aqui :
http://users.starpower.net/rjhalljr/Serve/AccSql/sql.html
Por si no la ves, la parte que nos concierne es esta :
Returning Groups Of Rows In Sequence
For web pages, you often want to return rows in groups of some number. For example, you may want to insert the first twenty five rows into the first page, the next twenty five into the second page, and so on. If you can't or don't want to do this in the client applications, the following SQL statements will do the job. This approach assumes that the rows in the table are ordered on one column (fldOrder).
SELECT TOP 25 * FROM tbl;
Now it gets a little tricky. To get the next group of twenty five rows, start by selecting the first fifty.
SELECT TOP 50 * FROM tbl;
Now use the query above as a subquery in a query that pulls the bottom twenty five from the selected fifty.
SELECT TOP 25 *
FROM (
SELECT TOP 50 * FROM tbl
)
ORDER BY fldOrder DESC;
That gets the correct twenty five rows, but in the wrong order. The last step is to put them back in the proper order.
SELECT *
FROM (
SELECT TOP 25 *
FROM (
SELECT TOP 50 * FROM tbl
)
ORDER BY fldOrder DESC
)
ORDER BY fldOrder;
The SQL statement above will run, but when you close the query and then reopen it in SQL View, you'll see that Access has changed the statement. Don't worry about it. Either version works.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas