Page 1 of 1

pasar de NTX a CDX

Posted: Wed Jun 04, 2008 2:17 pm
by MOISES
Hola:

Me gustaría encontrar información para pasar índices NTX a CDX.

Creo que además de añadir:

ANNOUNCE RDDSYS

REQUEST DBFCDX, DBFFPT

Hay que hacer mas cosas, pero no se cuales.

Tampoco entiendo bien lo de los TAGS. ¿No puedo seguir haciendo?

USE CLIENTES
INDEX ON FIELD->NOMBRE TO INDICE1
INDEX ON FIELD->CODIGO TO INDICE2

Dbcloseall()

select 1
use clientes index indice1, indice2

..
dbsetorder(2)
browse()
dbsetorder(1)

¿?

Muchas gracias. Un saludo

Posted: Wed Jun 04, 2008 2:53 pm
by joseluisysturiz
USE JLORDEN NEW
INDEX ON jlorden->ORD_NUMORD TAG NUMERO
INDEX ON jlorden->ORD_NUMCOM TAG COMPROMISO
INDEX ON jlorden->ORD_NUMGAS TAG CAUSADO
INDEX ON jlorden->ORD_FCHORD TAG FCHORD
INDEX ON jlorden->ORD_CODBEN TAG CODBEN

luego usasa SETORDER(n) o el nombre del TAG, revisa en las ultilidades habia una guia de uso de los CDX, no tienes que hacer mas nada, para crear tus DBF puedes usar DBUM o cualquier editor como PROMETHEUS...

Posted: Wed Jun 04, 2008 3:18 pm
by Biel EA6DD
Con los indices CDX, puedes seguir utilizando todas las funciones y comandos que usabas con los NTX.
Pero ademas te permiten implementar nuevas funcionalidades.

Te paso dos PDF que te pueden servir de ayuda.
http://www.ea6dd.com/ftp/bielsys/dbfcdx ... ndices.pdf(Recopilación de varias fuentes)
http://www.ea6dd.com/ftp/bielsys/dbfcdx/dbfcdx.pdf(Jose A.Suárez Moreno)

No son de autoria propia, y no se exactamente de donde los he sacado.

Posted: Wed Jun 04, 2008 4:14 pm
by ADBLANCO
Cuidado con _ MEMO, si los utilizas

Posted: Wed Jun 04, 2008 5:28 pm
by MOISES
Muchas gracias a todos.

Sí uso campos memo, ¿qué ocurre?.

Un saludo

Posted: Wed Jun 04, 2008 5:52 pm
by quique
Cada RDD los maneja a su manera, sería conveniente que si tienes campos memo crearas un archivo con una estructura identica y copies con APPEND FROM, utilizando el RDD indicado para cada archivo

Posted: Wed Jun 04, 2008 7:55 pm
by MOISES
Quique:

Sí, eso lo había leído. Pensé que había que hacer algo más.

En cuanto a los tags, entonces ¿no se puede seguir haciendo?

USE PROVEE
INDEX ON PROVEE->NOMBRE TO (pPath+"\PROVEE")
INDEX ON PROVEE->CODIGO TO (pPath+"\PROVEE2")
INDEX ON PROVEE->NIF TO (pPath+"\PROVEE3")


¿No es posible tener los índices separados y cambiar el índice activo con dbsetorder?

Muchas gracias a todos.

Posted: Thu Jun 05, 2008 1:57 am
by quique
hasta donde recuerdo, si se puede, pero la última vez que lo hice fue hace como 12 años, cuando todavía no existía harbour

Posted: Thu Jun 05, 2008 4:55 am
by joseluisysturiz
MOISES wrote:Quique:

Sí, eso lo había leído. Pensé que había que hacer algo más.

En cuanto a los tags, entonces ¿no se puede seguir haciendo?

USE PROVEE
INDEX ON PROVEE->NOMBRE TO (pPath+"\PROVEE")
INDEX ON PROVEE->CODIGO TO (pPath+"\PROVEE2")
INDEX ON PROVEE->NIF TO (pPath+"\PROVEE3")


¿No es posible tener los índices separados y cambiar el índice activo con dbsetorder?

Muchas gracias a todos.
Si estoy en lo cierto si lo puedes hacer, pero la idea de los CDX creo es no tener tantos archivos .CDX, ya que puedes tener varios indices en un solo archivo, estos son mas rapido y mas pequeños los archivos, a menos que tengas una verdadera necesidad de tenerlos en forma individual. :shock:

Posted: Thu Jun 05, 2008 7:18 am
by Biel EA6DD
Por supuesto que pueden usarse indices separados, aunque te aseguro que te será más practico tenerlos juntos.

Se puede utilizar dbSetOrder tanto si los indices estan juntos como separados.

Conclusion, basta con que regeneres los indices a formato CDX, y el resto de codigo que utilizabas hasta ahora con NTX, seguira funcionando.

Posted: Thu Jun 05, 2008 3:45 pm
by ADBLANCO
TE SIMPLIFICAS LA VIDA SI UTILIZAS UN SOLO INDICE

Y LA TRANSFORMACION ES MUY SENCILLA:
DONDE USAS:
USE PROVEE
INDEX ON PROVEE->NOMBRE TO (pPath+"\PROVEE")
INDEX ON PROVEE->CODIGO TO (pPath+"\PROVEE2")
INDEX ON PROVEE->NIF TO (pPath+"\PROVEE3")

LO CAMBIAS POR
USE PROVEE
INDEX ON _FIELD->NOMBRE TAG PROVEE TO (pPath+"\PROVEE")
INDEX ON _FIELD->CODIGO TAG PROVEE2 TO (pPath+"\PROVEE")
INDEX ON _FIELD->NIF TAG PROVEE3 TO (pPath+"\PROVEE")

Y LOS SET INDEX _ A SET ORDER
DONDE DIGA
SET INDEX TO PROVEE,PROVEE2,PROVEE3

SIMPLEMENTE ESCRIBES

SET ORDER TO PROVEE
O
SET ORDER TO 1

A MI PARTICULARMENTE PREFIERO UTILIZAR NOMBRES EN LOS TAG QUE INDIQUEN LA NATURALEZA DEL ORDER, DE FORMA QUE EL CODIGO SE AUTO-DOCUMENTA

Posted: Thu Jun 05, 2008 3:49 pm
by ADBLANCO
UN DETALLE, CON CDX,
SI DESEAS RE-GENERAR LOS INDICES, TE RECOMIENDO BORRARLOS ANTES DE GENERAR Y EVITA EL RE-INDEX

NO ES PORQUE TE VAYA A DAR PROBLEMAS, SINO PORQUE ES MÁS RÁPIDO EL PROCESO