Compañeros:
necesito buscar registros muy rápidamente en una DBF con 5000 registros y con un NTX indexado por 3 campos: str(tendido)+str(zona)+str(fila)
¿Cual sería el contenido de la variable "Busca" para buscar un registro mediante FIND?: Find &Busca
Cuando el NTX está indexado por un solo campo no tengo problemas, pero en este caso está indexado por 3.
Podría utilizar DbSetfilter pero es muy lento cuando se utiliza en RED local.
Mil gracias.
LORENZO
Utilizando FIND,SEEK...
Loren:
Si vas a buscar con FIND o SEEK ahí tendrías que armar una variable con el mismo formato que la clave, podrías tener tres campos de entrada y luego que la bariable BUSCAR contenga la concatenacion de estos
cBuscar := str(ntendido)+str(nzona)+str(nfila)
Te recomiendo que utilices STR con la cantidad de digitos que tiene la variable:
cBuscar := str(ntendido,5)+str(nzona,2)+str(nfila,2)
Espero te sirva
Si vas a buscar con FIND o SEEK ahí tendrías que armar una variable con el mismo formato que la clave, podrías tener tres campos de entrada y luego que la bariable BUSCAR contenga la concatenacion de estos
cBuscar := str(ntendido)+str(nzona)+str(nfila)
Te recomiendo que utilices STR con la cantidad de digitos que tiene la variable:
cBuscar := str(ntendido,5)+str(nzona,2)+str(nfila,2)
Espero te sirva
Mejor aún, tal como dice cmsoft i ADBLANCO,ADBLANCO wrote:(_alias)->(dbseek(str(ntendido)+str(nzona)+str(nfila)))
IF (_alias)->(EOF())
MSGALERT("No Encontre")
ENDIF
(_alias)->(dbseek(str(ntendido, 5, 0)+str(nzona, 6, 0)+str(nfila, 7, 0)))
Es tan importante los dígitos como los decimales.
Saludos
Carlos G.