indices cdx

Post Reply
Verhoven
Posts: 529
Joined: Sun Oct 09, 2005 7:23 pm
Been thanked: 3 times

indices cdx

Post by Verhoven »

Quiero pasarme a trabajar con índices CDX en vez de los NTX pero necesito que alguien me de algunas recomendaciones previas y si existe algún manual al respecto.

Utilizo xHarbour de PuertoSur para fw 2.4

Gracias.
User avatar
leandro
Posts: 1779
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Has thanked: 53 times
Been thanked: 16 times
Contact:

lo hago asi...

Post by leandro »

al inicio de tu programa colocas lo siguiente...

Code: Select all | Expand

REQUEST DBFCDX
RddSetDefault("DBFCDX")


y los indices los genero de la siguiente manera...

Code: Select all | Expand

USE (oLamcla:tPrem) ALIAS tPrem EXCLUSIVE NEW
IF !NETERR()
  oProgress:nPosition += 1
  FERASE(oLamcla:tPrem+".CDX")
  IF FILE(oLamcla:tPrem+".CDX")
   ELSE
    INDEX ON Articulo TAG nTcod
    INDEX ON nombre   TAG nTnom
   ENDIF
 ELSE
  MSGINFO(oLamcla:tPrem)
ENDI
tPrem->(dbclosearea())


Espero te sirva...

ah: nunca me han fallado hasta el momento....
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 24.09 ] [ xHarbour 64 bits) ]
User avatar
jose_murugosa
Posts: 1196
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Been thanked: 1 time
Contact:

Un detalle importante

Post by jose_murugosa »

Un detalle importante como habrás visto en el ejemplo anterior es que los índices cdx no se reindexan (aunque se puede hacer) sino que se borran y se vuelven a crear, esto se debe a un bug de estos índices que hace que la información anterior quede dentro del archivo aunque "desconectada" con lo cual cada vez que reindexas el archivo aumenta de tamaño sustancialmente.

Debes tener en cuenta que si usas la cláusula SET AUTOPEN ON debes ponerla en OFF antes de indizar, de otro modo el archivo CDX se abrirá junto con la base y no podrás borrarlos luego de recrear los índices la volverás a poner en ON.

Te adjunto un par de documentos del Rafa Carmona sobre DBFCDX ( no te asustes son unas 5 páginas) a mí me ayudaron sustancialmente en el uso de estos índices. :D

bajalo en:
http://hyperupload.com/download/01d627c ... x.exe.html
(son dos pdf en un archivo self stracting de Rar)

Verás que trabajando con SET AUTOPEN ON y e INDICES BAG ESTRUCTURALES te ahorrarás cientos de líneas de código e índices corruptos. :!:

Un fuerte abrazo.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla y el teclado y la IA!!"
User avatar
Armando
Posts: 3279
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México
Been thanked: 4 times
Contact:

Post by Armando »

Verhoven, Leandro y José:

Con la función ORDLISTREBUILD() y no he tenido problemas.
denle una mirada.


Saludos, Armando
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Post Reply