Reindexar tabela DBF com MDX

Delphi

14/01/2004

tenho uma rotina dentro de um sistema que gera proximo exercicio, isso consiste em copiar ano velho para ano novo, gerando 2 bco de dados, um chamado geral2004.dbf e seu indice geral2004.mdx. Essa geração é feita da copia do geral.dbf e seu indice geral.mdx (esse arquivo esta vazio), o erro abaixo ocorre qdo eu mando abrir o arquivo novo.
CORRUPT TABLE/ INDEX HEADER FILE G:\geral2004.mdx

o q faco ?

agradeco
edu


Deusem

Deusem

Curtidas 0

Respostas

Aroldo Zanela

Aroldo Zanela

14/01/2004

Colega,

Delete o arquivo Geral2004.mdx e abra a tabela Geral2004.dbf por meio do Database Desktop. Vai aparecer uma mensagem informando a ausência do arquivo de índice com três opções. Selecione a opção Open and Detach, recrie o índice e pronto.


GOSTEI 0
Deusem

Deusem

14/01/2004

desse jeito eu consigo... mas eu gostaria que fosse via programação... tem como, ou seja sem a entrada no database....agradeco


GOSTEI 0
Deusem

Deusem

14/01/2004

me ajudem ...preciso com urgencia uma resposta.


GOSTEI 0
Geisonc

Geisonc

14/01/2004

Estou com o mesmo problema. Tem jeito de fazer isso via programação ?


GOSTEI 0
Geisonc

Geisonc

14/01/2004

acho q isso me responde... :(


Na estrutura do DBF não há qualquer informaçoes sobre os indices.... Em alguns casos apenas há um flag (byte) dizendo se o DBF deve ser aberto com indices ou nao... São os indices (CDX / IDX / NTX) que armazenam quais campos fazem parte da chave.... 

A unica maneira de recriar os indices (sem conhecer a chave) é Abrir o DBF juntamente com os indices.... Se o os inidices não existem, fica impossível....



GOSTEI 0
Pereiramarcos

Pereiramarcos

14/01/2004

tem como abrir e atualizar arquivos dbx com ntx no delphi se sim como ?
pos ja tentei sem sucesso . . .


GOSTEI 0
POSTAR