Programador
LA BÚSQUEDA DE INFORMACIÓN EN TABLAS INDEXADAS
La búsqueda de información permite tener mayor control sobre los datos almacenados en las tablas. Para
poder buscar información, es importante saber manipular las órdenes de indexados, activación de índices,
ordenes de búsqueda y funciones para el chequeo de la efectividad de las búsquedas. FoxPro trae muchasórdenes suficientes para que nuestras aplicaciones tengan control de la información clave de nuestras
tablas.
• • USE Tabla ORDER TAG NombreTag
Abre la tabla indicada y activa como índice el especificado por NombreTag. El éxito de ejecución de
esta orden requiere que la tabla haya sido previamente indexada.
Por ejemplo, esta instrucción abre la tabla PROGRAMA y activa CODIGO como orden de latabla.
Ahora, podremos listar la información de la tabla clasificada por este campo o podremos ejecutar
búsquedas de datos basado en este campo clave.
USE PROGRAMA ORDER TAG CODIGO
• • SET ORDER TO TAG NombreTag
Permite activar el campo índice indicado por NombreTag. Por ejemplo, la siguiente orden abre la
tabla PROGRAMA en una instrucción aparte, luego ejecuta SET ORDER TO TAG paraestablecer el
campo clave a utilizar para el ordenado de los datos o ejecución de búsquedas:
USE PROGRAMA
SET ORDER TO TAG CODIGO
En este caso, es mejor utilizar una línea para abrir la tabla y simultáneamente asignar el campo de
ordenamiento. Esta orden resulta muy útil, cuando se necesita establecer un orden para la tabla, sin
necesidad de volverla a abrir.
Por ejemplo, abrimos la tablaPROGRAMA e inmediatamente asignamos la clasificación de los datos.
USE PROGRAMA ORDER TAG CODIGO
Si ejecutamos la siguiente orden, se listaría la información clasificada por el la entrada clave
CODIGO.
LIST
Ahora, activaremos otro campo de ordenamiento y ejecutaremos nuevamente LIST. Esta vez se lista
la información clasificada por el campo NOMBRE.
SET ORDER TO TAG NOMBRE
LIST
• • INDEX ONExpIndice TAG NombreTag FOR !DELETED()
Esta orden permite generar una entrada especial de índice compuesto, clasificando la información por
la expresión de índice ExpIndice. EL nombre de la entrada sería el indicado por NombreTag. La
cláusula FOR permite establecer un filtro para los datos clasificados. En este caso, se utiliza como
filtrado de datos, a todos los registros que no se hallanborrado de la tabla. Acostúmbrese a utilizar
esta cláusula en cuanto indexado construya. Esta instrucción le permitirá tener mayor control de los
datos existentes en una tabla, y su respectivo manejo a través de los formularios (recuerde que cuando
se retira un registro con la orden DELETE este no se borra físicamente -borrado lógico- de la tabla
hasta no ejecutar PACK –borrado físico-). Si noutiliza esta cláusula, los informes, y muchas órdenes
de recorrido de registros, incluirían a los borrados de las tablas.
Por ejemplo, la siguiente instrucción crea una entrada índice denominada CODIGO para la tabla
PROGRAMA. Adicionalmente, con la cláusula FOR se filtran todos los borrados de la tabla. En la
tercer orden, se crea una entrada clave denominada NOMBRE.
USE PROGRAMA
INDEX ONCODIGO TAG CODIGO FOR ¡DELETED()
INDEX ON NOMBRE TAG NOMBRE FOR !DELETED()
Nota: Tenga en cuenta que esta órden crea inicialmente un fichero compuesto con el mismo nombre
de la tabla y con la extensión .CDX. Para el ejemplo anterior, si miramos el sitio donde se encuentra
almacenada la tabla PROGRAMA.DBF aparece un nuevo archivo denominado PROGRAMA.CDX.
Las siguientes entradas índices seagregarán al índice compuesto.
Expresiones de índices compuestos
Muchas veces una aplicación requiere la construcción de índices compuestos para poder funcionar.
Por ejemplo, el detalle de las notas de unos estudiantes, podría ser un claro ejemplo de ello. La tabla
de notas (por diseño del software) contiene solo el campo CODIGO del estudiante y el campo
CODASIGNA que incluye el código de las...
Regístrate para leer el documento completo.