duvida atualizacao de indice CDX

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

duvida atualizacao de indice CDX

Mensagem por porter »

ola pessoal, no xHarbour, estou gerando CDX, quando abro um arquivo, abro todos os indices com o set index como mostrado abaixo, gostaria de saber porque alguns indices aparecem com a data atualizada, no caso abaixo, por exemplo, somente o ind1 fica com a data atualizada os outros nao, achei que a data dos indices eram atualizados somente quando indexava(index on codmer to ind1).

SET INDEX TO ind1, indi2, ind3, ind4
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

duvida atualizacao de indice CDX

Mensagem por Toledo »

Amigo, sempre que for atualizado algum campo no DBF (ou inserir um registro novo) que seja chave do arquivo de índice, então o arquivo de índice será também atualizado, e assim a data do arquivo será alterada. Caso o campo atualizado não faça parte da chave de índice, então a data do arquivo não será alterada.

Obs.: em arquivos CDX, você pode criar tag e indexar em um mesmo arquivo CDX várias chaves diferentes, isto é, em um mesmo arquivo CDX ter várias chaves de índices. Neste caso, abrir apenas um CDX no SET INDEX TO.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

duvida atualizacao de indice CDX

Mensagem por alxsts »

Olá!

Só complementando, no RDD CDX, se, e somente se, o nome do arquivo estrutural de índices (o arquivo .CDX único que contém todas as tags de índices), também conhecido como Order Bag, tiver o mesmo nome do arquivo .DBF e a opção SET AUTOPEN estiver ON, então, o comando USE detectará isto e abrirá o arquivo de índices automaticamente. Opcionalmente, se a opção SET AUTORDER for especificada, poderá ser especificada uma ordem inicial.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

duvida atualizacao de indice CDX

Mensagem por JoséQuintas »

Porter, não sei se está fazendo por etapas.
Só pra reforçar o que já disseram:

No NTX: é só o nome do arquivo ARQUIVO.NTX
No CDX: tem também um nome interno, a TAG, pode ter até 10 letras. Tag repetida, é considerada somente uma.
No CDX: cada arquivo pode conter vários índices.

Código: Selecionar todos

USE CLIENTES
INDEX ON CODIGO TAG INDICE1
INDEX ON NOME TAG INDICE2
INDEX ON ENDERECO TAG INDICE3
SET INDEX TO CLIENTES
Isso em CDX resulta no arquivo CLIENTES.CDX contendo os três índices.
Além da vantagem de não esquecer de abrir índice adicional, ainda conta como 1 único arquivo aberto.

Código: Selecionar todos

USE CLIENTES
INDEX ON CODIGO TAG INDICE1 TO ARQUIVO1
INDEX ON NOME TAG INDICE2 TO ARQUIVO2
INDEX ON ENDERECO TAG INDICE3 TO ARQUIVO3
SET INDEX TO ARQUIVO1, ARQUIVO2, ARQUIVO3
No exemplo acima, vai criar ARQUIVO1.CDX, ARQUIVO2.CDX, ARQUIVO3.CDX

Código: Selecionar todos

USE CLIENTES
INDEX ON CODIGO TAG INDICE1 TO ARQUIVO1
INDEX ON NOME TAG INDICE2 TO ARQUIVO1
INDEX ON ENDERECO TAG INDICE3 TO ARQUIVO2
SET INDEX TO ARQUIVO1, ARQUIVO2
No exemplo acima, vai criar ARQUIVO1.CDX contendo os índices INDICE1 e INDICE2, e ARQUIVO2.CDX contendo INDICE3

Código: Selecionar todos

USE CLIENTES
INDEX ON CODIGO TAG INDICE
INDEX ON NOME TAG INDICE
INDEX ON ENDERECO TAG INDICE
SET INDEX TO CLIENTES
Neste último está errado. Apesar de criar 3, só vale 1 por causa do nome interno repetido.
Não sei se é este o seu caso.
Também é bom lembrar disto na hora de indexar, porque o espaço ocupado será de 3 índices. Convém apagar um CDX e recriá-lo pra isto não acontecer - isto não acontece com NTX.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder