Quebra de Índices

 



 Este problema é muito comum. No Clipper, as modificações do banco de dados são feitos no cliente e depois enviados ao servidor... se há um pique de luz, um travamento, ou outro bug qualquer no cliente, o índice se quebra.

Primeiro lugar você deve ter certeza de que em todo programa que você grava ou altera dados você abre todos os arquivos de índice que o DBF possui, mesmo os índices que você não utilizará no programa. Utilizar bolsa de índices (bag) disponíveis em alguns RDD como o DBFCDX é util porque todos os indices sempre são abertos automaticamente.

Uma forma de evitar um pouco esses problemas é usar sempre o DBCOMMIT() para que as modificações não fique localmente no cache dando bobeira e sim seja gravado logo no servidor... Chama-se flush (descarga) no disco.

Nunca crie uma chave do tipo alltrim(nome)+codigo, pois na estrutura no arquivo de indice há um registro que define o tamanho da sua chave, se você criar uma chave com tamanho variável o resultado será sempre um arquivo corrompido!

Você deve verificar as instalações dos computadores, veja se todos têm estabilizadores, aterramento adequado, etc. O servidor necessita ter um no-break! E caso o benefício do no-break possa se estender aos outros computadores provavelmente você não terá mais problemas com isso... (todos precisariam terminar rapidamente o trabalho antes que a energia acabasse, é claro).

A única forma de prevenir 100% contra quebra de índices é a instalação de um bom gerenciador de banco de dados, como o ADS (Advantage Data Server), o único embargo é o preço... +- R$ 10.000,00. Nem preciso dizer que só é viável p/ grandes empresas, não é?! No entanto, o resultado é espetacular! Aumento da velocidade da rede, da capacidade de armazenamento dos DBFs, segurança total dos arquivos de índice, etc. Isto porque um gerenciador de banco de dados faz com que a gravação/edição das informação seja realizada diretamente no servidor ao invés de trazê-las para o terminal que você está e depois devolver. Temos diversos gerenciadores de banco de dados no mercado.

Se após estas observações o problema ainda persiste, vá à seção de Know-How e procure o tema "Consistência dos Arquivos de Índice" que fala sobre como manter a integridade do banco de dados na programação de seu sistema.