Problemas com arquivos de indice.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Beto.bh
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 23 Ago 2007 09:55
Localização: bh/MG

Problemas com arquivos de indice.

Mensagem 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.
Avatar do usuário
miracle
Usuário Nível 3
Usuário Nível 3
Mensagens: 117
Registrado em: 14 Jun 2007 16:28
Localização: Sao Paulo SP

Mensagem 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.
Clipper 5.2e + DBFCDX + Exospace 1.0g
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem 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.
Editado pela última vez por Pablo César em 14 Set 2007 09:29, em um total de 1 vez.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Beto.bh
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 23 Ago 2007 09:55
Localização: bh/MG

Mensagem por Beto.bh »

Vlw miracle!

Vou usar arquivos CDX e ver no que dá.

Grande abraço!
Beto.bh
Usuário Nível 1
Usuário Nível 1
Mensagens: 18
Registrado em: 23 Ago 2007 09:55
Localização: bh/MG

Mensagem 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.
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Re: Problemas com arquivos de indice.

Mensagem 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
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem 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
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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. :)))
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
Augusto
Usuário Nível 3
Usuário Nível 3
Mensagens: 473
Registrado em: 26 Ago 2003 17:50
Localização: Maricá/RJ
Contato:

Mensagem 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...
:xau Fui...
goulart@provsul.com.br

Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem 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.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem 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. :)
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Responder