Indices cdx

Solo disponible en BuenasTareas
  • Páginas : 19 (4557 palabras )
  • Descarga(s) : 25
  • Publicado : 8 de julio de 2010
Leer documento completo
Vista previa del texto
MANEJO DE INDICES CDX EN CLIPPER 5.3
En clipper 5.3 el RDD para manejo de índices CDX tiene varias ventajas que vamos a analizar y a reforzar con ejemplos. A modo de introducción se puede decir que:

• •

Los archivos índices que se crean son pequeños, puesto que están comprimidos, siendo por esto más rápidos. Se pueden crear varias claves de indexación (teóricamente hasta 49) que se puedenguardan en un sólo archivo físico (.CDX) en vez de en multitud de (.NTX) y por lo tanto el código fuente y el trabajo para abrirlos es menor, así como el consumo de files del sistema. Se puede usar un archivo índice con el mismo nombre que la tabla a la que pertenece; al abrirse la tabla, automáticamente se abrirá el índice. Esto reduce el riesgo de corrupción. Crea y mantiene índicescondicionales (FOR / WHILE / REST / NEXT). Tecnología que optimiza el uso de filtros utilizando índices o SCOPES, mucho más rápido. Ahora, los archivos memo (.FPT) pueden almacenar hasta 4.2 Gb, siendo más pequeños y eficientes que los del formato DBFNTX (.DBT) Crear ficheros memo con un tamaño mínimo del bloque de 1 byte. El espacio vacío de los ficheros memo se reutiliza de forma automática. Almacenar todoslos tipos de datos de CA-Clipper (menos bloque de código) en ficheros memo, incluso imágenes o sonidos. Utilizar las extensiones de Clipper (funciones BLOB) para la gestión de ficheros y campos de ficheros memo. Sistema de información sobre campos, registros y Tablas desde los mismos índices.

• • • • • • • • •

USO DEL DBFCDX
El controlador DBFCDX viene en dos ficheros: DBFCDX.LIB y_DBFCDX.LIB. Que se encuentran en el subdirectorio \LIB del clipper 5.3. Para usar el Driver CDX se puede hacer de dos maneras:

1.- se deben agregar las siguientes líneas al programa principal para establecer el driver CDX por defecto
#INCLUDE "Ord.ch" //si se van a utilizar SCOPES REQUEST DBFCDX RDDSETDEFAULT ( "DBFCDX" )

...y linkear las librerías: DBFCDX y _DBFCDX 2.- Use la cláusula VIA"DBFCDX" del mandato USE o bien especifique "DBFCDX" en el argumento si abre la base de datos con la función DBUseArea() ...y linkear las librerías: DBFCDX y _DBFCDX

CREACION DE INDICES CDX
En principio existen 3 funciones para construir índices: OrdConSet(), OrdCreate() y DbCreateIndex(), pero no se recomienda trabajar directamente con ellas. Por el contrario, usemos INDEX ON (que en el fondo setransforma en funciones por medio del preprocesador) por su claridad y flexibilidad. Analicemos cada una de las partes de este comando.
INDEX ON ; TAG TO ; FOR ; WHILE ; NEXT | RECORD | REST | ALL ; UNIQUE ; ASCENDING | DESCENDING ; EVAL EVERY ; USECURRENT ; ADDITIVE ; CUSTOM ; NOOPTIMIZE

- FOR: Con FOR creamos índices condicionales, es decir que contengan solo los registros que cumplan conuna condición lógica. Ejemplo:
INDEX ON MiBase->edad TAG joven ; FOR edad edad edad TAG joven ; WHILE edad edad TAG joven ; WHILE edad Codigo TAG Cod; EVAL { Avance() } EVERY 10 PROC Avance() local nRegProc := 0 nRegProc + = 10 // incremento ? ( nRegProc/Mitabla->(Reccount()) ) * 100 RETURN

- USECURRENT: En el TAG se incluirán sólo los registros establecidos por otra condición creada antes, porejemplo con un filtro. - ADDITIVE: Le dice al sistema que mantenga abierto índices que lo estaban antes de crear el suyo. Si no se especifica, los BAGs abiertos se cierran antes de crear el nuevo, pero ¡OJO!, el BAG estructural NUNCA se cierra, a menos que antes de abrirlo ejecute SET AUTOPEN OFF. - CUSTOM: Este es un índice especial cuya utilidad reside en que se crea un TAG vacío que llenaremossegún nuestro propio criterio. M s Adelante nos detendremos para explicar como funciona. - NOOPTIMIZE: El driver DBFCDX posee una tecnología especial de optimización de filtros; en las versiones anteriores a 5.3 no se recomendaba el uso de filtros porque hacia m s lenta la ejecución del programa. Ahora, si no se específica NOOPTIMIZE, la cláusula FOR será optimizada automáticamente.

DESDE LOS...
tracking img