Página 1 de 1

CDX ou NTX

Enviado: 24 Nov 2005 14:19
por Ricardo Sales Ribeiro
Oi Amigos Clipeiros
Tudo Bem!

Gostaria de saber qual a diferença enter estes indices, CDX e NTX? Qual o melhor para se trabalhar ? Como fazer para gerar o CDX.? Quais as vantagens de um para o outro?

Um Grande Abraço a Todos

Enviado: 24 Nov 2005 14:29
por Stanis Luksys
Olha, pode ser ignorância da minha parte, mas uso o NTX desde sempre e nunca tive nenhum problema, continuo com ele e nunca pensei muito seriamente em mudar...

CDX ou NTX

Enviado: 24 Nov 2005 15:57
por Ricardo Sales Ribeiro
Agradeço sua opinião, más mesmo assim, gostaria de saber de quem usa CDX se é melhor do q NTX.

Enviado: 24 Nov 2005 17:16
por DORNELES
Sem duvida o CDX, eu utilizo, ele é mais rapido para gerar os indices, e o tanho dele fica bem menor, em um arquivo.dbf de 1.6 mb no ntx fica 363kb e no CDX 11kb, você tambem pode utilizar a opcao TAG, com ela você cria varios indice em um só arquivo.
OK

Enviado: 24 Nov 2005 20:49
por clauber
amigo uso cdx, e com certeza eh bem melhor, vejamos em poucas palavras a diferença:

1 - no cdx vc tem somente um arquivo fisico, evita de vc ter q abrindo dentro de suas rotinas um monte de arquivos
2 - os indices se atualizao automaticamente, ntx tem abri-los para atualiza-los
3 - cdx mais rapido menos problema com arquivo conrompido
4 - as chaves saum criadas nas tags, tipico de bd relacionais

e outra ao usa as lib dbfcdx e _dbfcdx forcou q eu compilasse meus fontes com exospace no modo protegido, acabou-se problema de memoria convencional ...

Enviado: 25 Nov 2005 14:19
por Ale SB
Para vc gerar arquivos CDX, faça isto:

// Coloque no inicio de seu Sistema Principal, p/Informar q tipo de Indice vc vai Trabalhar.
REQUEST DBFCDX
RddSetDefault("DBFCDX")

//Bem eu tenho uma Funçao só pra indexar, q eh mais pratico.

//Antes de indexar, use o FERASE(), explico: ele serve p/apagar os Indices antigos e criar novos, este eh o unico problema do CDX, q eu conheço, se vc nao apagar os indices, toda vez q iniciar seu sistema ele nao reindexa e sim cria um novo indice dentro do seu indice.

Ferase("iArqforn.cdx")
Ferase("iCart_ch.cdx")

USE ArqForne ALIAS Forne
INDEX ON codi TAG iCod TO iArqForn
INDEX ON Fant TAG iFant TO iArqForn

USE Cart_Chq alias Cart
Index on Banc TAG 1 to iCart_ch
Index on Agen TAG 2 to iCart_ch
Index on nChq TAG 3 to iCart_ch

CLOSE All

//Dentro de teu sistema vc pode abrir assim:

USE Cart_Chq alias Cart NEW EXCLUSIVE
dbSetIndex("iCart_ch.Cdx") // ou se preferir Set Index To iCart_ch.Cdx
OrdSetFocus("1") // Indica ao indice q Tag ele deve Usar
Cart->(dbGoTop())

//Nao esqueça de linkar com a LIB DBFCDX.LIB

Veja bem, pelo fato do CDX atualizar sozinho, nao há necessidade de vc cria-lo toda vez q entra no sistema, vc pode por uma condiçao p/ verificar se ele existe, ai neste caso vc nao precisaria do Ferase().

Aqui no forum temos bastante dicas e Post sobre o CDX, faça uma Busca q vc irá tirar muitas duvidas.

Mas, qualquer coisa eh o chamar !!!

@braços Ale