La Web del Programador: Comunidad de Programadores
 
    Pregunta:  838 - FICHERO INDICE DE FOX
Autor:  G. Fernando Castro Guerrero
Tengo una duda con Clipper: necesito leer un fichero índice de Fox, CDX, cómo puedo hacer eso si por omisión Clipper solo lee índices NTX?

Gracias.


  Respuesta:  J. Fernando Puntel
Bueno, para solucionar eso deberás usar algunas de las librerías que proporcionan acceso a "índices compuestos" entre ellos los CDX stándard en FOX. Puedes usar, por ejemplo las librerías SIX de Successware que son las que usamos en mi empresa. Con solo cambiar el RDD que se usa (por omisión DBFNTX, agregar dos include y la librería en el archivo de link todo funciona de perillas.

  Respuesta:  Darío Hernána Irigaray
No Clipper Permite Leer Indices .dbf, .ntx, .cdx, .idx

Para solucionar este incoveniento, deberás enlazar el .OBJ correspondiente, por ejemplo el .obj estandar que se incluye por defecto es el DBFNTX.OBJ, pero abrir y generar indices CDX (FOX) deberemos enlazar el OBJ DBFCDX.OBJ, pero solo esto no es todo...

Deberemos aprender un nuevo concepto de indices, donde cada DBF tendrá sólo un archivo indice, que en realidad se llama contenedor de ordenes, donde crearemos, los indices dentro del contenedor, pero lo único diferente a los NTX es la creación, el manejo, es idéntico, y transparente, para ello sólo deberán abrirlos si ya fueron creados con FOX que seguro es lo que desean realizar, recuerden que según mis propias experiencias, los indices de FOX ocupan mayor memoria, ya que utilizan una compresión, y un formato especial, ya que son mas pequeños y más rapidos, pero si desean mas información envienme un mail.

Suerte!


  Respuesta:  Carlos Rene Acevedo
con respecto a tu pregunta de abrir indices CDX en clipper tienes que agregar la order: USE tabla.dbf INDEX indice VIA DBFCDX
Ademas de esto tienes que agregar la libreria DBFCDX.lIB a tu programa
Si tienes dudas escribeme y te resolvere la inquietud

  Respuesta:  Juan Zuñiga
prueba con esto
use index via RDDCDX

  Respuesta:  [email protected]
Hola, antes que nada no especificas que version de clipper estas usando.
si es en la version 5.3 se debe especificar al principio de tu programa la funcion DBsetdriver("dbfcdx"), y asi podras abrir indices de fox,si es la version 5.1 no se puede utilizar la funcion antes mencionada. suerte.
si tienes alguna duda mandame un e-mail y si tengo la solucion te la mando. ok

  Respuesta:  Gregorio Cobá Gala
Es muy sencillo, solo tienes que cambiar el driver por default, esto lo consigues de varias formas:

ejemplo1 : Puedes hacerlo al momento de abrir la base de datos

DBUSEAREA( TRUE, "DBFCDX", "MIDBF.DBF", "MIDBF" )
con ésto, el segundo parámetro indica el driver a utilizar (DBFCDX).

ejemplo2: Puedes cambiar el driver por default

ANNOUNCE RDDSYS
INIT PROCEDURE RDDSYS
REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )
RETURN
Esto código lo pones en un archivo separado y posteriormente lo compilas y enlazas con tu programa y listo. Todas las bases de datos se abriran por default con el driver CDX.