PDA

Ver la Versión Completa : Buscar registros de forma rapida


Tecnic2
29-09-2004, 17:31:12
Hola a todos,

En mi aplicacion tengo unos 16000 articulos, con los cuales tengo que hacer una estadistica de compras, ventas,.... Pues bien, lo que hago es abrir la tabla de articulos e ir registro a registro, y por cada uno voy a la tabla de ventas y busco todas las ventas que pertenecen a ese articulo, al igual que hago la con la tabla compras. Las tablas de compras y ventas estan indexadas por código de artículo.
Mi método para buscar los registros dentro de las tablas es con la funcion Filter; pero he visto que tarda mas que hacerlo con la funcion Locate. Lo que pasa es que con ésta última, cuando se posiciona sobre el 1r registro que coincide con el criterio y luego voy al siguiente registro utilizando el método Next, se salta un montón de registros.

Dicho ésto, mis preguntas son:
- Cómo puedo hacer para utilizar la funcion Locate y que al ir al siguiente registro no se lo salte?
- Es aún más rápida la funcion Seek ?

Muchas gracias por adelantado.

basti
29-09-2004, 17:58:36
El problema de que next te salte puede ser debido a que aunque las tablas de compras y ventas estén indexadas por el código de artículo no estés utilizando ese índice.

De todas maneras más rápido que locate es la función FindKey que busca a través del índice, cosa que no hace locate.

Pero creo que la mejor solución que tienes es utilizar Master/Detail entre las tablas de articulo y compras o ventas, así no tendrás que hacer ninguna búsqueda.

Un saludo

Tecnic2
29-09-2004, 18:11:56
Utilizo tablas ADO y no encuentro el Findkey.
Por otra parte, qué es exactamente lo de Master/Detail ?