You are on page 1of 6

INDEX (Comando)

Crea un archivo de ndice para mostrar registros de tabla y tener acceso a los mismos en un orden lgico. Sintaxis INDEX ON eExpresin TO NombreArchivoIDX | TAG NombreEtiqueta [OF NombreArchivoCDX] [FOR lExpresin] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE] Argumentos eExpresin Especifica una expresin de ndice que puede incluir el nombre de campos de la tabla actual. Se crea en el archivo de ndice una clave de ndice basada en la expresin de ndice para cada registro de la tabla. Visual FoxPro usa estas claves para mostrar registros de la tabla y tener acceso a los mismos. Nota No use una variable, un elemento de matriz o un campo o una expresin de campo de una tabla de otro rea de trabajo para eExpresin. Si tiene acceso a un ndice que contenga una variable que ya no existe o que no se puede encontrar, Visual FoxPro generar un mensaje de error. Los campos memo no se pueden usar individualmente en expresiones de archivo de ndice; deben combinarse con otras expresiones de caracteres. Si incluye un campo con un prefijo de alias de tabla o letra de rea de trabajo en la expresin de ndice, Visual FoxPro generar un mensaje de error. Aunque puede optimizar las clusulas FOR con la tecnologa Rushmore si se incluyen los campos con alias, se recomienda que evite el uso de campos con alias al crear ndices. En varios casos (USE ... AGAIN, consultas SQL, etc.), se asigna automticamente un alias diferente a una tabla y puede que el ndice no se use o actualice de forma apropiada. Para obtener ms informacin sobre la tecnologa Rushmore, vea "Descripcin de la tecnologa Rushmore" en el captulo 15, Optimizar aplicaciones, del Manual del programador. Si intenta generar un ndice con una clave de longitud variable, la clave se rodear con espacios. Las claves de ndice de longitud variable no se admiten en Visual FoxPro.

Es posible crear una clave de ndice con longitud 0. Por ejemplo, se crea una clave de ndice de longitud 0 cuando la expresin de ndice es una subcadena de un campo memo vaco. Una clave de ndice de longitud 0 generar un mensaje de error. Cuando Visual FoxPro crea un ndice, evala los campos del primer registro de la tabla. Si un campo est vaco, puede ser necesario escribir datos temporales en el campo del primer registro para evitar una clave de ndice de longitud 0. La longitud de una clave de ndice para un ndice .idx debe estar entre 1 y 100 caracteres. La longitud de una clave de ndice para un ndice .cdx debe estar entre 1 y 240. TO NombreArchivoIDX Crea un archivo de ndice .idx. Se da al archivo de ndice la extensin predeterminada .idx, que puede pasar por alto si incluye una extensin diferente o si cambia la extensin de ndice predeterminada del archivo de configuracin de Visual FoxPro. Deben cumplirse las reglas estndar de Windows para nombrar archivos, que incluyen nombres largos de archivo al archivos de ndice. TAG NombreEtiqueta [OF NombreArchivoCDX] Crea un archivo de ndice compuesto. Un archivo de ndice compuesto es un archivo de ndice simple que consiste en un nmero cualquiera de etiquetas independientes (entradas de ndice). Cada etiqueta se identifica por medio de un nombre nico. Los nombres de etiquetas deben comenzar con una letra o un signo de subrayado y pueden consistir en cualquier combinacin de letras, nmeros o subrayados hasta un mximo de diez. El nmero mximo de etiquetas de un archivo de ndice compuesto solamente est limitado por el espacio libre en memoria y disco. Los archivos de ndice compuesto de entradas mltiples siempre son compactos. Por eso no es necesario incluir el comando COMPACT al crear un ndice de este tipo. A los nombres de archivos de ndice compuesto se les asigna una extensin .CDX. Se pueden crear dos tipos de archivos de ndice compuesto: estructurales y no estructurales. Si excluye la clusula opcional OF NombreArchivoCDX de TAG NombreEtiqueta, estar creando un archivo de ndice compuesto estructural. Un archivo de ndice compuesto estructural siempre lleva el mismo nombre base de la tabla y se abre de forma automtica al abrir sta. Si no se puede encontrar el archivo de ndice compuesto estructural de una tabla, se elimina o se cambia de nombre, aparece un cuadro de dilogo al intentar abrir la tabla. Si elige el botn Cancelar predeterminado, la tabla no se abrir. Si elige Ignorar se abre la tabla y se elimina el indicador del encabezado de la tabla que indica que est presente un archivo de ndice compuesto estructural.

Sugerencia Para volver a asociar un ndice compuesto estructural que ha sido separado de su tabla, ejecute el comando siguiente:
USE NombreTabla INDEX NombreArchivoCDX

Si incluye la clusula opcional OF NombreArchivoCDX despus de TAG NombreEtiqueta, estar creando un archivo de ndice compuesto no estructural. A diferencia de los archivos de ndice compuesto estructurales, un archivo no estructural debe abrirse explcitamente incluyendo la clusula SET INDEX o INDEX en la composicin del comando USE. Si ya se ha creado y abierto un archivo de ndice compuesto, al ejecutar INDEX con TAG NombreEtiqueta se agrega una etiqueta al archivo de ndice compuesto. NombreArchivoCDX es el nombre del ndice compuesto estructural no asociado. Asegrese de reindizar la tabla si se ha modificado desde que se desasoci el ndice compuesto estructural. FOR lExpresin Especifica una condicin en la que solamente los registros que satisfacen la expresin del filtro lExpresin estn disponibles para su visualizacin y acceso. nicamente se crean las claves de ndice de aquellos registros que cumplen la expresin del filtro. Rushmore optimiza un comando INDEX ... FOR lExpresin si lExpresin es una expresin optimizable. Utilice una expresin optimizable en la clusula FOR para obtener un mayor rendimiento. Si desea ms informacin, consulte SET OPTIMIZE y "Descripcin de la tecnologa Rushmore" en el captulo 15, Optimizar aplicaciones, del Manual del programador. COMPACT Crea un archivo .IDX compacto. ASCENDING Especifica un orden ascendente para el archivo .CDX. Las etiquetas .CDX se crean de manera predeterminada en orden ascendente (puede incluir ASCENDING como recordatorio del orden del ndice del archivo). Se puede indexar una tabla en orden inverso si se incluye DESCENDING. DESCENDING

Especifica un orden descendente para el archivo .CDX. No se puede incluir DESCENDING al crear los archivos de ndice .IDX. Sin embargo, s puede especificar un orden descendente para un archivo de ndice .IDX con SET INDEX y SET ORDER. UNIQUE Especifica que solamente se incluir el primer registro encontrado en una clave de ndice determinada en un archivo .IDX o en una etiqueta .CDX. Se puede usar UNIQUE para evitar la presentacin o el acceso a los registros duplicados. Se excluyen todos los registros agregados con claves de ndice duplicadas del archivo de ndice. Utilizar la opcin UNIQUE de INDEX es lo mismo que ejecutar SET UNIQUE ON antes de efectura INDEX o REINDEX. Cuando est activo un ndice o una etiqueta de ndice se actualizan si se cambia un registro duplicado de manera que cambie su clave de ndice. Sin embargo, no se puede mostrar ni tener acceso al siguiente registro duplicado con la clave de ndice original hasta que vuelva a indexar el archivo con REINDEX. CANDIDATE Crea una etiqueta candidata de ndice estructural. Si no es as, Visual FoxPro genera un mensaje de error. Una etiqueta candidata de ndice evita los valores duplicados del campo o la combinacin de campos especificada en la expresin de ndice eExpresin. El trmino "candidata" se refiere al tipo de ndice. Como los ndices candidatos evitan los valores duplicados, se convierten en "candidatos" a ser ndices principales. Visual FoxPro genera un error si crea una etiqueta de ndice candidata para un campo o combinacin de campos que ya contengan valores duplicados. Si desea ms informacin acerca de las etiquetas de ndice candidatas y principales, consulte "Establecer un ndice principal o candidato" en el Captulo 7, del Manual del programador. ADDITIVE Mantiene abiertos cualquier archivo de ndice abierto anteriormente. Si omite la clusula ADDITIVE cuando crea archivos de ndice para una tabla con INDEX, los cerrar (excepto los de tipo compuesto estructural). Comentarios Los registros de una tabla que tienen un archivo de ndice se muestran, y se tiene acceso a los mismos, en el orden especificado por la expresin del ndice. El orden fsico de los registros de la tabla no se ve alterado por la presencia de un ndice.

Si SET TALK est establecido a ON (activado), Visual FoxPro informa de cuntos registros se indexan durante el proceso. El intervalo de registros mostrados durante la indexacin puede especificarse con SET ODOMETER. Utilice DISPLAY STATUS para mostrar ms informacin acerca de los archivos de ndice. Esta informacin incluye los nombres de todos los archivos de ndice abiertos, sus tipos (estructural, .CDX, .IDX), las expresiones del ndice, sus secuencias de correlacin y el nombre del archivo de ndice o etiqueta maestros. El nmero de archivos de ndice (.IDX o .CDX) que puede abrir solamente est limitado por la memoria y los recursos del sistema. En Visual FoxPro, FoxPro para Windows y FoxPro para MS-DOS, el nmero mximo de archivos que puede abrir viene determinado por la opcin FILES del archivo de configuracin CONFIG.SYS de MS-DOS. Si desea ms informacin acerca de la opcin FILES, consulte su manual de MS-DOS. Tipos de ndices Visual FoxPro le permite crear dos tipos de archivos de ndice:

Archivos de ndice compuesto .CDX con entradas de ndice mltiples denominadas etiquetas. Archivos de ndice .IDX con una sola entrada de ndice.

Tambin puede crear un archivo de ndice compuesto estructural, que se abrir automticamente con la tabla. Sugerencia Los archivos de ndice compuesto son los preferidos, ya que se abren automticamente al abrir la tabla. Incluya COMPACT para crear archivos de ndice .IDX compactos. Los archivos de ndice compuesto siempre son compactos. Orden del ndice y actualizacin Un nico archivo de ndice (el archivo de ndice maestro) o etiqueta (la etiqueta maestra) controla el orden en que se muestra la tabla o en el que se tiene acceso a la misma. Algunos comandos, como SEEK, utilizan el archivo de ndice maestro o la etiqueta para buscar registros. Sin embargo, todos los archivos de ndice .IDC o .CDX abiertos se actualizan al mismo tiempo que se realizan los cambios en la tabla. Puede elegir el archivo de ndice maestro o la etiqueta con la clusula INDEX de USE, o con SET INDEX y SET ORDER. Funciones definidas por el usuario Aunque una expresin de ndice puede contener una funcin definida por el usuario, no debera utilizarlas en una expresin de ndice. Las funciones definidas por el usuario dentro de una expresin de ndice aumentan el tiempo necesario para crear o actualizar el ndice. Adems, no se pueden realizar actualizaciones del ndice cuando se utiliza una funcin definida por el usuario en una expresin de ndice.

Si utiliza una funcin definida por el usuario en una expresin de ndice, Visual FoxPro debe ser capaz de localizar esa funcin. Cuando Visual FoxPro crea un ndice, la expresin del ndice se guarda en el archivo de ndice, pero solamente se incluye una referencia en el mismo.

You might also like