KEY( ) (Función)

Devuelve la expresión de clave de índice para una etiqueta o un archivo de índice.

KEY([CDXFileName,] nIndexNumber [, nWorkArea | cTableAlias])

Valores devueltos

Character

Parámetros

  • CDXFileName
    Especifica el nombre de un archivo de índice compuesto. KEY( ) devuelve las expresiones de clave de índice de la etiqueta de índice del archivo .CDX. El archivo de índice compuesto que especifique puede ser el archivo de índice compuesto estructural que se abre automáticamente con la tabla o un archivo de índice compuesto independiente.

  • nIndexNumber
    Especifica la expresión clave de índice que se va a devolver.

    USE y SET INDEX admiten ambos una lista de archivos de índice que permite abrir varios índices para una tabla. En la lista de archivo de índice puede incluirse cualquier combinación de archivos de índice .IDX de entrada única, archivos de índice compuesto estructural o archivos de índice compuesto independiente.

    La expresión numérica nIndexNumber especifica la expresión de índice que se va a devolver desde los archivos de índice abiertos. KEY( ) devuelve expresiones de índice desde los archivos de índice abiertos en el orden siguiente a medida que nIndexNumber aumenta de 1 al número total de archivos .IDX de una sola entrada abiertos, más las etiquetas de índice compuesto estructural y compuesto independiente:

    1. Primero se devuelven las expresiones de índice de archivos de índice .IDX de una sola entrada (si hay alguno abierto). El orden en que se incluyen estos archivos en USE o SET INDEX determina cómo se devolverán las expresiones de índice.
    2. A continuación, se devuelven las expresiones de índice para cada etiqueta del índice compuesto estructural (si hay alguno presente). Las expresiones de índice de las etiquetas se devuelven en el orden en que se crearon las etiquetas en el archivo de índice compuesto estructural.
    3. Por último, se devuelven las expresiones de índice para cada etiqueta de los índices compuestos independientes que haya abiertos. Las expresiones de índice de las etiquetas se devuelven en el orden en que se crearon las etiquetas en los índices compuestos independientes.

    Se devuelve la cadena vacía en caso de que nIndexNumber sea mayor que el número total de archivos .idx de una sola entrada abiertos más el número de etiquetas de índice compuesto estructural y compuesto independiente.

  • nWorkArea
    Especifica el número de área de trabajo de la tabla cuyas expresiones de clave de índice desea devolver mediante KEY( ).

    Si no hay ninguna tabla abierta en el área de trabajo especificada, KEY( ) devolverá la cadena vacía.

  • cTableAlias
    Especifica el alias de la tabla cuyas expresiones de clave de índice desea devolver mediante KEY( ).

    Si ninguna tabla tiene el alias especificado, Microsoft Visual FoxPro mostrará un mensaje de error.

    Si omite nWorkArea y cTableAlias, se devolverán las expresiones de clave de índice para la tabla abierta en el área de trabajo actual.

Observaciones

Se especifica una expresión de clave de índice en el momento de crear una etiqueta de índice o un archivo de índice con INDEX. La expresión de clave de índice determina cómo se muestra y se tiene acceso a una tabla cuando se abre el archivo de índice como la etiqueta o el archivo de índice de control maestro.

Para obtener más información acerca de cómo crear etiquetas de índice, archivos de índice y expresiones de clave de índice, vea INDEX.

Ejemplo

El ejemplo siguiente abre la tabla customer de la base de datos testdata. Se usa FOR ... ENDFOR para crear un bucle en el que se usa KEY( ) para mostrar la expresión de índice de cada etiqueta del índice estructural customer. Se muestra el nombre de cada etiqueta de índice estructural con su expresión de índice.

CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Customer     && Open customer table
CLEAR

FOR nCount = 1 TO 254
   IF !EMPTY(TAG(nCount))  && Checks for tags in the index
   ? TAG(nCount) + ' '  && Display tag name
   ?? KEY(nCount)  && Display index expression
   ELSE
      EXIT  && Exit the loop when no more tags are found
   ENDIF
ENDFOR

Vea también

INDEX | REINDEX | SET INDEX | SYS(14) - Expresión de índice | USE