Página 1 de 2

Problemas com arquivos de indice.

Enviado: 14 Set 2007 08:27
por Beto.bh
Pq tenho tantos problemas na criação de arquivos de indice nas minhas aplicações q rodam em rede?!?!?! Eu trabalho assim: abro o arquivo somente na hora de utiliza-lo e crio o arquivo de indice, logo em seguida fecho tudo. Isso evita ter mt arquivos abertos ao mesmo tempo... to certo ou to errado?!?!?!?

Mtas vezes tenho q deletar os NTX para q o programa possa recriá-los.

Enviado: 14 Set 2007 09:06
por miracle
Amigo Beto.bh,

Não sei o que você pode estar fazendo errado, mas aí vão algumas dicas:

1 - Mude para índices .cdx. O uso deles melhora o desempenho do sistema, fazendo com que as pesquisas de dados e inserções sejam mais rápidas. Talvez seu sistema esteja dando problema com os índices porque, se estiver rodando em rede, os usuários ficam impacientes com a demora e reiniciam o computador com as bases de dados abertas.
Para saber como fazer isso, consulte o site: http://www.caclipperwebsite.com/, na seção Dicas e na seção Aprenda Clipper.

2 - A criação dos índices deve ser feita com a tabela aberta em modo exclusivo. E os índices não devem ser criados toda hora. Experimente criá-los quando você cria a tabela .dbf.

3 - Caso a tabela esteja corrompida, use o utilitário FILEFIX para reparar os dados. Ele pode ser baixado no site: http://www.vagucs.com.br/, na seção Downloads / Clipper.

Qualquer dúvida, se isso não funcionar, torne a postar aqui no fórum. Espero ter ajudado.

Enviado: 14 Set 2007 09:16
por Pablo César
Só para complementar um pouco ainda mais... independente se é NTX ou CDX o importante mesmo é sempre abrir os arquivos de índices junto com os DBFs, sempre que sejam necessários para consultar (uso do SEEK) e "principalmente" SEMPRE que você precise ESCREVER (gravar) no arquivo DBF. Isso, com certeza irá evitar um monte de problemas. E como disse o colega, não é bom ficar criando a toda hora arquivos de índices. E aconselho ainda que se precisares "eventualmente" (geralmente para uso de relatórios esporádicos) uma índexação diferente, crie o arquivo na própria estação no C: (local, não no servidor quando for estação). Isso também dá uma certa segurança e rapidéz. Mas também tem que ser avaliado se essa indexação for de tamanho muito grande, senão é preferível que ela seja feita e atualizada SEMPRE na rotina de indexação.

A utlização de CDX em vez de NTX é mehlor opção na optimização o que ganha-se rapidez e e maior confiabilidade. Mas reavalie se você está deixando de abrir os arquivos de índices no momento de atualização do seu BD.

Enviado: 14 Set 2007 09:21
por Beto.bh
Vlw miracle!

Vou usar arquivos CDX e ver no que dá.

Grande abraço!

Enviado: 14 Set 2007 10:08
por Beto.bh
Eu tive um experiencia ñ mt boa há alguns anos qnd desenvolví um soft pra uma emrpesa de consultoria juridica. Eram mais de 10 estações utilizando o programa à todo vapor. Foi o primeiro soft q fiz em rede e fiz da seguinte maneira: criei um procedure q abria todos os arquivos e criava todos os indices d q precisava; na hora de abrir o arquivo usava o select e o set index... mas meu Deus, como dava problema de indices.

Agora to faznedo diferente e to tendo mt menos problemas - eu abro o arquivo na hora q preciso e crio o indice. Ñ sei se to fazendo certo, analizando as dicas aí acima, mas garanto q tenho menos dores de cabeça do q antes.

Enviado: 14 Set 2007 10:24
por Maligno
Ah, sim. Sem dúvida. Manter os arquivos abertos o tempo todo é dar muita chance pro azar. É muito melhor abrir apenas o necessário, conforme a tarefa a ser executada.

Re: Problemas com arquivos de indice.

Enviado: 14 Set 2007 10:45
por janio
Beto.bh escreveu:Eu trabalho assim: abro o arquivo somente na hora de utiliza-lo e crio o arquivo de indice...
Não é necessário ficar recriando a todo momento os índices! A não ser para DBF's temporários.

Talvez esteja aí o seu problema.

Ah! uma dica: Com índices CDX, se vc precisar por algum motivo recriar um índice, DELETE o antigo antes. Não reindex sem antes DELETAR o anterior, ok?

Jânio

Enviado: 14 Set 2007 10:47
por Maligno
Não é necessário ficar recriando a todo momento os índices! A não ser para DBF's temporários.
Eu entendi que ele quis dizer que cria os índices quando eles não existirem. Não será isso? Se não for, realmente, não é nada prático recriar índices a todo instante.

Enviado: 14 Set 2007 22:35
por alaminojunior
Meus queridos, só para incrementar:
Tenho um sistema de atendimento (balcão), em que abro todos os arquivos ao iniciar. Além disso, a primeira estação que iniciar o sistema pela primeira vez no dia, já faz a reindexação total do sistema.
Me orgulho em dizer que é muito raro haver um problema com os indices e bancos. Sendo assim, acho que uma boa revisão no código seria uma boa. Atenção com as atualizações com indices fechados.

Enviado: 15 Set 2007 01:27
por Maligno
Me orgulho em dizer que é muito raro haver um problema com os indices e bancos.
Infelizmente, os principais fatores que levam a uma pane são alheios à vontade e à perícia do programador. Por isso, é sempre melhor pensar que o pior vai acontecer. Minha opinião.

Enviado: 15 Set 2007 07:32
por janio
Maligno escreveu:. Por isso, é sempre melhor pensar que o pior vai acontecer. Minha opinião.
O Maligno é um fiel discípulo da LEI DE MURPHY.

hehehehehehe

:|< :f ´o) ;) :xau :D :-o -:]

Jânio

Enviado: 15 Set 2007 10:53
por Maligno
O Maligno é um fiel discípulo da LEI DE MURPHY.
Opa! Ele não me larga um instante. Já tenho até uma cadeirinha aqui do lado que é pra ele não cansar. :)))

Enviado: 15 Set 2007 12:50
por Augusto
Estou começando a achar que o "MURPHY" é quase uma espécie de "Deus"... ou seja, onipresente ... pois ele tbm não sai do meu lado... E mais... não tem só cadeirinha prá ele aqui não.. tem casa, comida e roupa lavada....

Quanto aos DBF's e NTX's ... eu só os abro na hora que em que vou usá-los ... é só alegria... pelo menos comigo...
Para reindexa-los, tenho uma rotina específica prá isso (entre outras) no menu "utilitários" onde além de avisar a quem for invocá-la de que todos os usuários devem estar OUT do sistema e, por via das dúvidas, ainda testo se existe algum arquivo aberto...

Enviado: 16 Set 2007 11:03
por alaminojunior
Baseado nos post´s dos nobres colegas, olha só:

Se alguma coisa pode dar errado, dará. E mais, dará errado da pior maneira, no pior momento e de modo que cause o maior dano possível.
Todo corpo mergulhado numa banheira faz tocar o telefone.
A informação mais necessária é sempre a menos disponível.
O pessimista se queixa do vento, o otimista espera que ele mude, o realista ajusta as velas e quem conhece Murphy não faz nada.
A probabilidade do pão cair com o lado da manteiga virado para baixo é proporcional ao valor do carpete.
O gato sempre cai em pé.
Não adianta amarrar o pão com manteiga nas costas do gato e o jogar no carpete. Provavelmente o gato comerá o pão antes de cair em pé.
A fila do lado sempre anda mais rápido.
Se você está se sentindo bem, não se preocupe. Isso passa.
Se a experiência funcionou na primeira tentativa, tem algo errado.
Mais vale um pássaro na mão do que um voando sobre a nossa cabeça.
Por mais tomadas que se tenham em casa, os móveis estão sempre na frente.
Existem dois tipos de esparadrapo: o que não gruda, e o que não sai.
Uma pessoa saudável é aquela que não foi suficientemente examinada.
Você sempre acha algo no último lugar que você procura.
Toda partícula que voa sempre encontra um olho.
Os primeiros 90% de uma tarefa demora 90% de tempo a executar. Os restantes 10% demora outros 90%.
Uma gravata limpa atrai sempre a sopa do dia.
Conclusão é o ponto onde você ficou cansado de pensar.
Se está escrito Tamanho único, é porque não serve em ninguém.
Se algo é confidencial, será esquecido na máquina de xerox.
Se o conserto ficou perfeito, e porque você usou a ferramenta errada.
Todo arame cortado no tamanho indicado será curto demais.
As peças que sempre exigem manutenção estarão colocadas nos lugares mais inacessíveis.
Qualquer equipamento coberto por uma garantia, deixará de funcionar logo após a garantia expirar.
Você sempre encontrará o defeito no último lugar em que procurar.
Não e possível sanar um defeito antes das 17 e 30h da sexta-feira.
O defeito será facilmente sanado as 9 e 01h da segunda-feira.
A informação mais necessária, é sempre a menos disponível.

Enviado: 17 Set 2007 02:56
por Maligno
Só pra constar: o Murphy a que nos referimos realmente existiu. Edward Murphy era tenente da Força Aérea Americana; piloto de caça na segunda guerra mundial. Era um pessimista nato. Deve ter sobrevivido. :)