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()
.
.
.
SKIP
LOCATE REST WHILE Nombre == “Casanova”
ENDDO
Ficheros: La biblioteca asociada es DPXBASE.CH.