SEEK 
 Busca en un orden el valor clave especificado
------------------------------------------------------------------------------
 Sintaxis

     SEEK <expBúsqueda> [SOFTSEEK]

 Argumentos

     <expBúsqueda> es una expresión que debe coincidir con un valor
     clave de un orden.

     SOFTSEEK hace que el puntero del registro se sitúe en el primer
     registro con clave mayor a la clave buscada cuando la búsqueda no sea
     satisfactoria. Por defecto, en una búsqueda fallida el puntero del
     registro se coloca en la posición EOF().

 Descripción

     SEEK es un mandato de base de datos que efectúa una búsqueda en el
     orden de control. Empieza por el valor de la primera o la última clave
     (dependiendo de si se ha especificado la palabra clave LAST) y
     continúa el proceso hasta encontrar una coincidencia o la existencia de
     un valor clave superior a <expBúsqueda>. Si existe una coincidencia, el
     puntero del registro se sitúa en la identidad encontrada en el orden.
     Si se ha establecido SET SOFTSEEK OFF y SEEK no encuentra una
     coincidencia, el puntero del registro se sitúa en LASTRECT() + 1, EOF()
     devuelve el valor verdadero (.T.) y FOUND() devuelve el valor falso
     (.F.).

     SOFTSEEK posibilita que al buscar en un orden se devuelva un registro
     aun cuando no se haya encontrado el elemento buscado.

     Si se ha establecido SOFTSEEK en ON y la búsqueda no es satisfactoria,
     el puntero del registro se sitúa en el registro que tenga el primer
     valor clave mayor que el argumento de SEEK. Los registros que no son
     visibles debido al efecto de los mandatos SET FILTER y/o SET DELETED no
     participan en la búsqueda. Si en el orden no hay claves mayores que el
     argumento de búsqueda, el puntero del registro se sitúa en LASTREC() +
     1, EOF() devuelve el valor verdadero (.T.) y FOUND() devuelve el valor
     falso (.F.).

     FOUND() devuelve el valor verdadero (.T.) sólo si se encuentra un
     registro que coincida con el argumento de búsqueda. FOUND() nunca
     devuelve el valor verdadero (.T.) en una búsqueda relativa.

     Utilizar la cláusula SOFTSEEK en una búsqueda equivale, en versiones
     anteriores de CA-Clipper, a dar valor a SET SOFTSEEK antes de realizar
     la búsqueda. La única diferencia es que la utilización de la cláusula
     no modifica el parámetro global SOFTSEEK.

 Ejemplos

      El ejemplo siguiente busca el cliente "Cela" utilizando el
        mandato SEEK:

        USE Cliente NEW
        SET ORDER TO Cliente
        ? SET( _SET_SOFTSEEK )        // (.F.)
        SEEK "Cela"
        ? SET( _SET_SOFTSEEK )        // Todavía (.F.)
        IF FOUND()
           .
           . < sentencias >
           .
        ENDIF

      El ejemplo siguiente busca el cliente "Cela" utilizando la
        cláusula SOFTSEEK y el mandato SEEK:

        USE Cliente NEW
        SET ORDER TO Cliente
        ? SET( _SET_SOFTSEEK )        // (.F.)
        SEEK "Cela" SOFTSEEK
        ? SET( _SET_SOFTSEEK )        // Todavía (.F.)
        IF !FOUND()
           ? Cliente->Nombre          // Devuelve el nombre del registro
                                      // lógico siguiente a "Cela"
        ENDIF

Files   Library is CLIPPER.LIB.

 To download this example - click here.

See Also: DBSEEK() DBSETINDEX() DBSETORDER() EOF() SET INDEX