La Web del Programador: Comunidad de Programadores
 
    Pregunta:  763 - PROBLEMAS CON EL SEEK()
Autor:  Rocco Di Chiara
Estoy programando con Visual Fox 6.

En el Help, aparece que puedo utilizar al Comando Seek o la Funcion Seek().
Con la función, me indica que puedo utilizar los siguientes parametros:

seek(eExpresion[,nWorkArea|cTableAlias [,nIndexNumber | cidxindexFileName | cTagName]])
Sin embargo, solo me admite la expresion, al introducir el nWorkArea o el cTableAlias, me indica que no debo usar mas parametros.

Que Ocurre ?


  Respuesta:  joherick nuñez
mira amigo yo cuando voy a utilizar un seek() lo que hago es lo siguiente
por decir si tengo un cuadro de texto llamado txtnombre y lo utilizo para buscar nombres en una tabla
hago lo siguiente

selec nombre tabla && secciona la tabla
set order to nombre && orden de busqueda por nombre
seek alltrim(thisform.txtnombre.value) && busca en toda la tabla lo que se encuentra dentro el cuadro de texto llamado txtnombre

si no entendiste dimelo por correo y yo te mando un ejemplo mas seguro que este, para que mires que si funciona

att

  Respuesta:  Francisco J. Araña Dúo
En mi busqueda de optimización, me llevó a usar siempre la FUNCION SEEK(), y siempre la utilizo de esta manera:

IF SEEK(m.Código, "STUDENTS", "Matricula")
SCATTER MEMVAR
Agre_nuevo_reg = .F.
ELSE
SCATTER MEMVAR BLANK
Agr_nuevo_Reg = .T.
ENDIF

es más limpio, más rapido y facil de entender

OBS: m.Código, la clave que debo buscar
"STUDENTS"es la tabla donde busco
"Matricula", la indexación adecuada de busqueda
Agr_Nuevo_Reg = es un controlador de, si es .F. es que encontro la clave buscada, ya existe sino es una nueva clave que se puede adicionar al registro

  Respuesta:  Gonzalo Ferreyra
Tienes que anteponer el signo =, porque sino el fox cree que estás usando el comando, y no la función. Esto es porque la función debe devolver un valor.Ej: =SEEK(m.mivar,tabla1)

  Respuesta:  Jorge Alejandro Espinosa
Te recomiento utilizar el comando en lugar de la funcion, te va a dar la misma prestacion, este es un ejemplo
seek "mibusqueda" ORDER TAG miindice IN mitabla
La funcion responde con problemas y este no.
Espero te sirva.
Un Abrazo.

  Respuesta:  Silvio Walton
La Verdad no se que ocurre, pero te puedo dar un consejo con respecto a esos parametros:
Antes de ejecutar SEEK(), selecciona el alias en el que lo vas a realizar y te ahorras ese problema.
SELECT alias_de_la_tabla
SET ORDER TO indice
SEEK(llave_de_busqueda)
y listo.
Antes has debido abrir la base de datos, la tabla correspondiente; "Imagino que ya sabes hacerlo"
Con esto te evitas cualquier inconveniente.
Suerte...