FOUND()

 Determina si se encontró el registro buscado en la anterior operación de búsqueda

Sintaxis

     FOUND() –> lExito

Devuelve

FOUND() devuelve verdadero (.T.) si el último mandato de búsqueda ha sido satisfactorio; de lo contrario, devuelve falso (.F.).

Descripción

FOUND() es una función de base de datos que determina si una operación de búsqueda (es decir, FIND, LOCATE, CONTINUE, SEEK o SET RELATION) ha sido satisfactoria. Cuando se ejecuta uno de estos mandatos, FOUND() devuelve verdadero (.T.) si encuentra una coincidencia; de lo contrario, devuelve falso (.F.).

Si el mandato de búsqueda es LOCATE o CONTINUE, una coincidencia es el siguiente registro que cumpla con el ámbito y la condición. Si el mandato de búsqueda es FIND, SEEK o SET RELATION, una coincidencia es la primera clave del índice de control que es igual al argumento de búsqueda. Si el valor clave es igual al argumento de búsqueda, FOUND() devuelve verdadero (.T.); de lo contrario, es falso (.F.).

El valor de FOUND() se retiene hasta que se ejecuta otro mandato de movimiento de registro. A menos que sea otro mandato de búsqueda, FOUND() se establece automáticamente en falso (.F.).

Cada área de trabajo tiene un valor FOUND(). Esto significa que si un área de trabajo tiene una relación establecida con un área de trabajo secundaria, la consulta de FOUND() en el área secundaria devuelve verdadero (.T.) si encuentra una coincidencia.

Por defecto, FOUND() actúa en el área de trabajo seleccionada actualmente. Puede hacer que funcione en un área de trabajo no seleccionada especificándola dentro de una expresión de alias (consulte el ejemplo siguiente).

FOUND() devuelve falso (.F.) si no hay ninguna base de datos abierta en el área de trabajo actual.

Ejemplos

     ¦  En este ejemplo se ilustra el comportamiento de FOUND() después de un mandato de movimiento de registro:

        USE Ventas INDEX Ventas

        ? INDEXKEY(0)              // Resultado: VENDEDOR

        SEEK “1000”

        ? FOUND()                  // Resultado: .F.

        SEEK “100”

        ? FOUND()                  // Resultado: .T.

        SKIP

        ? FOUND()                  // Resultado: .F.

     ¦  En este ejemplo se comprueba un valor FOUND() en un área de trabajo no seleccionada utilizando una expresión de alias:

     USE Ventas INDEX Ventas NEW

        USE Cliente INDEX Cliente NEW

        SET RELATION TO Numclien INTO Ventas

        //

        SEEK “Casanova”

        ? FOUND(), Ventas->(FOUND())

     ¦  Este fragmento de código procesa todos los registros de Cliente con el valor clave “Casanova” utilizando FOUND() para determinar cuándo cambian los valores clave:

        USE Cliente INDEX Cliente NEW

        SEEK “Casanova”

        DO WHILE FOUND()

           .

           . <sentencias>

           .

           SKIP

           LOCATE REST WHILE Nombre == “Casanova”

        ENDDO

 Ficheros:  La biblioteca asociada es DPXBASE.CH.