DBSEEK( )

Desplaza el puntero al registro del valor clave especificado

Sintaxis

     DBSEEK(, [<lBúsquedaAprox>]) –> lEncontrado

 Argumentos

es un valor numérico comprendido entre 0 y 250, inclusive, que especifica el área de trabajo que se va a seleccionar.

es un valor de caracteres que especifica el alias de un área de trabajo ocupada actualmente que se va a seleccionar.

Devuelve

DBSEEK() devuelve verdadero (.T.) si se ha localizado el valor clave especificado; de lo contrario, devuelve falso (.F.).

 Descripción

DBSEEK() desplaza el puntero al primer registro lógico cuyo valor clave sea igual a . Si se localiza un registro de este tipo, se convierte en el registro actual y DBSEEK() devuelve verdadero (.T.). De lo contrario, DBSEEK() devuelve falso (.F.) y la situación del área de trabajo es la siguiente: para una búsqueda normal (no aproximada), el área de trabajo se sitúa en LASTREC() + 1 y EOF() devuelve verdadero (.T.). En una búsqueda aproximada, el área de trabajo se sitúa en el primer registro cuyo valor clave sea mayor que el valor clave especificado. Si no existe un registro de este tipo, el área de trabajo se sitúa en LASTREC() + 1 y EOF() devuelve verdadero (.T.). En un área de trabajo sin índices activos, DBSEEK() no tiene efecto.

DBSEEK() realiza la misma función que un mandato SEEK estándar. Si desea más información, consulte el mandato SEEK.

 Notas

     ¦  Registros lógicos: DBSEEK() actúa sobre registros lógicos. Los registros se examinan en el orden indexado. Si se establece un filtro, sólo se examinan los registros que cumplan la condición del filtro.

     ¦  Orden de control: Si el área de trabajo tiene más de un índice activo, la operación se realiza utilizando el orden de control establecido con la función DBSETORDER() o con el mandato SET ORDER. Si desea más información, consulte el mandato SET ORDER.

     ¦  Entorno de red: Al desplazarse a otro registro en un entorno de red, las modificaciones efectuadas en el registro actual se hacen visibles a los otros procesos. Si desea más información, consulte el capítulo Programación en Red en la guía Programación y Utilidades.

 Ejemplos

     ¦  En este ejemplo, DBSEEK() desplaza el puntero al registro en la base de datos Empleado, en la que el valor del CAMPO “cNombre” coincide con el valor introducido de cNombre:

        ACCEPT “Nombre del Empleado: ” TO cNombre

        IF ( Empleado->(DBSEEK(cNombre)) )

           Empleado->(MostrarRegistro())

        ELSE

           ? “No encontrado”

        END

 Ficheros:  La biblioteca asociada es DPXBASE.CH.