Share via


SEEK (Comando)

Busca en una tabla la primera aparición de un registro cuya expresión clave de índice coincida con una expresión general y después mueve el puntero de registro al registro coincidente.

SEEK eExpression   [ORDER nIndexNumber | IDXIndexFileName
    | [TAG] TagName [OF CDXFileName]    [ASCENDING | DESCENDING]]
   [IN nWorkArea | cTableAlias]

Parámetros

  • eExpression
    Especifica la expresión clave de índice que desea que busque SEEK. eExpression puede ser el valor Null.

  • ORDER nIndexNumber
    Especifica el número del archivo de índice o la etiqueta utilizada para buscar la clave de índice. nIndexNumber se refiere a los archivos de índice tal y como aparecen en USE o SET INDEX. Los archivos .idx abiertos se numeran primero en el orden en que aparecen en USE o SET INDEX. Las etiquetas en el archivo estructural .cdx (si existe) son entonces numeradas en el orden en el que han sido creadas. Finalmente, las etiquetas de cualquier archivo independiente .cdx abierto se numeran en el orden en el que han sido creadas. Vea SET ORDER para obtener más información acerca de la numeración de índices.

  • ORDER IDXIndexFileName
    Especifica un archivo .idx que se utiliza para buscar la clave de índice.

  • ORDER [TAG] TagName [OF CDXFileName]
    Especifica la etiqueta de un archivo .CDX que se utiliza para buscar la clave de índice. El nombre de etiqueta puede pertenecer a un archivo .cdx estructural o a cualquier archivo .cdx independiente abierto.

    Si existen nombres de etiqueta idénticos en archivos .cdx independientes abiertos, use OF CDXFileName para especificar el archivo .cdx que contiene la etiqueta.

    Nota   El archivo .idx tiene prioridad si existen nombres de etiqueta y un archivo .idx duplicado.

  • ASCENDING
    Especifica que se busque en la tabla en orden ascendente.

  • DESCENDING
    Especifica que se busque en la tabla en orden descendente.

  • IN nWorkArea
    Especifica el número del área de trabajo de la tabla en la que se realizará la búsqueda.

  • IN cTableAlias
    Especifica el alias de la tabla en la que se realizará la búsqueda.

    Si omite IN nWorkArea e IN cTableAlias, se busca en la tabla del área de trabajo seleccionada actualmente.

Observaciones

Puede utilizar SEEK únicamente con tablas indizadas y puede buscar únicamente por la expresión clave de índice. La coincidencia debe ser exacta a menos que SET EXACT esté en OFF (desactivado).

Si SEEK encuentra un registro con una clave de índice coincidente, RECNO( ) devolverá el número de registro del registro coincidente, FOUND( ) devolverá verdadero (.T.) y EOF( ) devolverá falso (.F.).

Si no encuentra ninguna clave coincidente, RECNO( ) devolverá el número de registros de la tabla más 1, FOUND( ) devolverá falso (.F.) y EOF( ) devolverá verdadero (.T.).

Si SET NEAR está activado, el puntero de registro se colocará inmediatamente después del registro con la clave de índice coincidente más cercana. Si SET NEAR está desactivado, el puntero de registro se colocará al final del archivo. En ambos casos, RECNO(0) devolverá el número de registro del registro más cercano.

Ejemplo

En el siguiente ejemplo, se abre customer y se indiza por el campo company. Se utiliza SEEK para encontrar la expresión clave de índice que coincide con el valor contenido en la variable gcSeekVal.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE customer ORDER company  && Opens Customer table

SET EXACT OFF
STORE 'B' TO gcSeekVal
SEEK gcSeekVal

IF FOUND( )
   DISPLAY FIELDS company, contact
ENDIF

Vea también

EOF( ) | FOUND( ) | INDEX | INDEXSEEK( ) | LOCATE | RECNO( ) | SEEK( ) | SET EXACT | SET NEAR