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