Compartir a través de


Comando de índice

Crea un archivo de índice para mostrar y obtener acceso a los registros de tabla en un orden lógico.

Sintaxis

  
INDEX ON eExpression TO IDXFileName | TAG TagName [OF CDXFileName]  
   [FOR lExpression]  
   [COMPACT]  
   [ASCENDING | DESCENDING]  
   [UNIQUE | CANDIDATE]  
   [ADDITIVE]  

Argumentos

eExpression
Especifica una expresión de índice que puede incluir el nombre de un campo o campos de la tabla actual. Se crea una clave de índice basada en la expresión de índice en el archivo de índice para cada registro de la tabla. Visual FoxPro usa estas claves para mostrar y acceder a los registros de la tabla.

Nota

Aunque no se recomienda, eExpression también puede ser una variable de memoria, un elemento de matriz o una expresión de campo o campo de una tabla en otro área de trabajo. Los campos Memo no se pueden usar solo en expresiones de archivo de índice; deben combinarse con otras expresiones de caracteres. Si tiene acceso a un índice que contiene una variable o campo que ya no existe o no se encuentra, Visual FoxPro genera un mensaje de error.

Si intenta crear un índice con una clave que varía en longitud, la clave se rellenará con espacios. Las claves de índice de longitud variable no se admiten en Visual FoxPro.

Es posible crear una clave de índice con longitud cero. Por ejemplo, se crea una clave de índice de longitud cero cuando la expresión de índice es una subcadena de un campo memo vacío. Una clave de índice de longitud cero genera un mensaje de error. Cuando Visual FoxPro crea un índice, evalúa los campos del primer registro de la tabla. Si un campo está vacío, es posible que sea necesario escribir algunos datos temporales en el campo del primer registro para evitar una clave de índice de longitud 0.

TO IDXFileName
Crea un archivo de índice .idx. El archivo de índice recibe la extensión predeterminada .idx.

TAG TagName[OF CDXFileName]
Crea un archivo de índice compuesto. Un archivo de índice compuesto es un único archivo de índice que consta de cualquier número de etiquetas independientes (entradas de índice). Cada etiqueta se identifica por su nombre de etiqueta único. Los nombres de etiqueta deben comenzar con una letra o un carácter de subrayado y pueden constar de cualquier combinación de hasta 10 letras, dígitos o caracteres de subrayado. El número de etiquetas de un archivo de índice compuesto solo está limitado por la memoria disponible y el espacio en disco.

Los archivos de índice compuestos de varias entradas siempre son compactos. No es necesario incluir COMPACT al crear un archivo de índice compuesto. A los nombres de los archivos de índice compuestos se les asigna una extensión .cdx.

Se pueden crear dos tipos de archivos de índice compuestos: estructural y no estructura.

Archivos de índice compuesto estructural Puede crear un archivo de índice compuesto estructural con TAG TagName excluyendo la cláusula OPCIONAL OF CDXFileName . Un archivo de índice compuesto estructural siempre tiene el mismo nombre base que la tabla y se abre automáticamente cuando se abre la tabla.

Archivos de índice compuestos no estructura Puede crear un archivo de índice compuesto no estructura mediante la inclusión de OF CDXFileName después de TAG TagName. A diferencia de un archivo de índice compuesto estructural, un archivo de índice compuesto no estructura debe abrirse explícitamente con la cláusula INDEX en USE.

Si ya se ha creado y abierto un archivo de índice compuesto, la emisión de INDEX con TAG TagName agrega una etiqueta al archivo de índice compuesto.

FOR lExpression
Especifica una condición en la que solo los registros que satisfacen la expresión de filtro lExpression están disponibles para la visualización y el acceso; las claves de índice se crean en el archivo de índice para solo los registros que coinciden con la expresión de filtro.

La tecnología Visual FoxPro Rushmore optimiza un INDEX ... Comando FOR lExpression si lExpression es una expresión optimizable. Para obtener el mejor rendimiento, use una expresión optimizable en la cláusula FOR.

COMPACT
Crea un archivo .idx compacto.

ASCENDENTE
Especifica un orden ascendente para el archivo .cdx. De forma predeterminada, las etiquetas .cdx se crean en orden ascendente. (Puede incluir ASCENDING como recordatorio del orden del archivo de índice). Una tabla se puede indexar en orden inverso incluyendo DESCENDING.

DESCENDENTE
Especifica un orden descendente para el archivo .cdx. No se puede incluir DESCENDING al crear archivos de índice .idx.

UNIQUE
Especifica que solo se incluye el primer registro encontrado con un valor de clave de índice determinado en un archivo .idx o una etiqueta .cdx. UNIQUE se puede usar para evitar la visualización o el acceso a registros duplicados. Todos los registros agregados con claves de índice duplicadas se excluyen del archivo de índice. El uso de la opción UNIQUE de INDEX es idéntico a ejecutar SET UNIQUE ON antes de emitir INDEX o REINDEX.

Cuando un índice UNIQUE o etiqueta de índice está activo y se cambia un registro duplicado de una manera que cambia su clave de índice, se actualiza la etiqueta de índice o índice. Sin embargo, no se puede acceder al siguiente registro duplicado con la clave de índice original ni mostrarse hasta que vuelva a indexar el archivo mediante REINDEX.

CANDIDATO
Crea una etiqueta de índice estructural candidata. La palabra clave CANDIDATE solo se puede incluir al crear una etiqueta de índice estructural; de lo contrario, Visual FoxPro genera un mensaje de error.

Una etiqueta de índice candidata evita valores duplicados en el campo o combinación de campos especificados en la expresión de índice eExpression. El término candidato hace referencia al tipo de índice; dado que los índices candidatos impiden valores duplicados, califican como "candidato" para ser un índice principal.

Visual FoxPro genera un error si crea una etiqueta de índice candidata para un campo o combinación de campos que ya contiene valores duplicados.

ADITIVO
Mantiene abiertos los archivos de índice abiertos anteriormente. Si omite la cláusula ADDITIVE al crear un archivo de índice o archivos para una tabla con INDEX, se cierran los archivos de índice abiertos anteriormente (excepto el índice compuesto estructural).

Comentarios

Los registros de una tabla que tiene un archivo de índice se muestran y se accede a ellos en el orden especificado por la expresión de índice. Un archivo de índice no cambia el orden físico de los registros de la tabla.

Tipos de índice

Visual FoxPro permite crear dos tipos de archivos de índice:

  • Archivos de índice .cdx compuestos que contienen varias entradas de índice denominadas etiquetas

  • Archivos de índice .idx que contienen una entrada de índice

También puede crear un archivo de índice compuesto estructural, que se abre automáticamente con la tabla.

Nota

Dado que los archivos de índice compuesto estructural se abren automáticamente cuando se abre la tabla, son el tipo de índice preferido.

Incluya COMPACT para crear archivos de índice .idx compactos. Los archivos de índice compuestos siempre son compactos.

Orden de índice y actualización

Solo un archivo de índice (el archivo de índice maestro) o la etiqueta (la etiqueta maestra) controla el orden en el que se muestra o se tiene acceso a la tabla. Algunos comandos (SEEK, por ejemplo) usan el archivo de índice maestro o la etiqueta para buscar registros. Sin embargo, todos los archivos de índice .idx y .cdx abiertos se actualizan a medida que se realizan cambios en la tabla.

Funciones definidas por el usuario

Aunque una expresión de índice puede contener una función definida por el usuario, no debe usar funciones definidas por el usuario en una expresión de índice. Las funciones definidas por el usuario en una expresión de índice aumentan el tiempo necesario para crear o actualizar el índice. Además, es posible que las actualizaciones de índice no se produzcan cuando se usa una función definida por el usuario para una expresión de índice.

Si usa una función definida por el usuario en una expresión de índice, Visual FoxPro debe poder localizar la función definida por el usuario. Cuando Visual FoxPro crea un índice, la expresión de índice se guarda en el archivo de índice, pero solo se incluye una referencia a la función definida por el usuario en la expresión de índice.

Consulte también

Modificar tabla - comando SQL
Eliminar etiqueta, comando
Comando COLLATE Set
CONJUNTO único comando