Locate en varias tablas desde fox 6.0

Tengo un form que contiene tres tablas sin relacion.
Quiero buscar un registro en cada una de ellas con locate, y funciona para las dos primeras pero en la tercera siempre me devuelve el primer registro... ¿cuál es mi error?
El código que uso es:
locate for codigo.codigo = "hp001" &&para la primera
locate for entradas.c_vendedor = 50 &&para la segunda
locate for productos.c_productos = 150 &&aqui es donde me devuelve siempre el primer registro
Como se debería realizar esta búsqueda, ya que los resultados los almaceno en una variable para uso posterior.

1 Respuesta

Respuesta
1
Por empezar, no se cuantos registros tienen tus tablas, pero si son muchos, siempre te conviene usar el SEEK, que es la búsqueda en tablas sobre indices; el LOCATE hace una búsqueda secuencial sobre la tabla completa y es muy lento.
Prueba lo siguiente:
Use productos alias productos exclusive
set unique off
Index on c_productos tag productos
Seek 150
if found()
_producto=c_productos
else
=messagebox("Producto Inexistente")
endif
en tu ejemplo siempre es mejor hacer lo siguiente:
select codigo
locate for codigo = "hp001"
select entradas
locate for c_vendedor = 50
select productos
locate for c_productos = 150
Espero haberte sido de ayuda. SUERTE!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas