Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RodrigoRC

Erro: Índice do grid fora de faixa - Sem explicação lógica para isso&#

Recommended Posts

Não aguento mais esse erro!!! :angry:

 

Não tem uma frequencia para acontecer.. ele acontece de vez em quando.. e quando isso ocorre.. preciso finalizar o sistema pelo Monitor de Recursos do Windows.

 

Ocorre que o componente DataSource perde a conexão com a tabela.. abrindo todos os registros de maneira desorndenada!!! Isso é visualizado no DBGrid.

 

Geralmente isso é despertado quando um outro formulário, depois de aberto, logo é fechado.

 

Já tentei fazer a "re-conexão" da tabela com o componente DataSource no evento On-Activate do Form. Não funcionou!!!

 

Por favor.. se alguém tiver alguma idéia.. me ajudem!!! Meu sistema nunca tinha dado esse erro... :huh:

 

ps.: Delphi 5, Paradox, Windows XP ou Seven.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O DataSource tem uma propriedade Dataset que indica quem o alimenta (se minha memória não está me traindo agora, pois estou sem o Delphi aqui para confirmar). Possivelmente, ao abrir este form que dispara o problema você está usando o mesmo componente que alimenta o DataSource do seu grid para alguma outra consulta, mudando os dados visualizados no DbGrid por isso... dê uma verificada nisto e, se não for o caso, melhore a descrição do problema.

 

[ ]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

O DataSource tem uma propriedade Dataset que indica quem o alimenta (se minha memória não está me traindo agora, pois estou sem o Delphi aqui para confirmar). Possivelmente, ao abrir este form que dispara o problema você está usando o mesmo componente que alimenta o DataSource do seu grid para alguma outra consulta, mudando os dados visualizados no DbGrid por isso... dê uma verificada nisto e, se não for o caso, melhore a descrição do problema.

 

[ ]'s

 

Correto!! É essa propriedade (DataSet) que está perdendo a ligação. Por isso que os dados ficam todos desordenados no grid, sem o índice que os controla.

O que está me intrigando ainda mais.. é que isso não está acontecendo porque estou compartilhando o componente DataSorce com mais nenhum outro Form.. tanto é.. que agora melhor lembrando.. o erro vem do nada.. só pelo fato de eu fechar o Form onde está esse componente. Isso tbm já aconteceu em outro Form que quase não se usa.

 

Eu já tentei colocar a re-conexão com o DataSet na propriedade On-Close do Form.. para antes dele finalizar ele se re-conectar. Nada adiantou!!

 

Isso começou a acontecer depois que eu fiz alterações no Form principal.. onde coloquei um componente Image para apresentar um Papel de Parede no ambiente.. e uma barra lateral (Panel) com um Relógio (do pacote RX) e um Bloco de Anotações (DBMemo). Mas acredito que isso não tenha dada haver!!

 

O pior é que tem dia que isso não acontece nenhuma vez.. mas tem dia.. meu Deus.. que acontece várias vezes!! Dando um "pique" na memória do PC ao ponto de ter que re-iniciar o Windows!!!

 

Cara.. não sei o que eu faço!! Estou desgostoso com o programa!! :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como dizia um amigo, não misturemos alhos com bugalhos.... um erro assim não surge do nada, geralmente tem algo haver com algum erro de codificação em alguma parte do programa... a primeira pergunta que vem a mente agora é: você já isolou o momento que o erro ocorre? Algo que você faça que sempre cause esse erro? Se sim, vem a segunda pergunta: já tentou debugar o programa linha a linha para ver se a rotina não está entrando em algum trecho de código indevido?

 

Outra questão: seu datasource está conectado a que tipo de componente? Uma table? Uma Query? Esse componente é local (do form) ou é parte de uma unit global? Se global, em algum outro lugar do programa você está dando comandos que alterem a codificação deste componente? Se sim, antes de voltar a tela do dbgrid você está reiniciando os comandos para que ele volte ao estado antes da alteração via outro form?

 

Amigo, sem o código e sem os fontes do programa é difícil auxiliar... as questões acima são a base que sempre usei para diagnosticar problemas com grids quando trabalho com TQuerys da vida globais... as vezes acontece de usarmos a mesma query para N coisas num programa e sem querer usá-la para uma consulta, o que gera "maluquices do nada" no programa. O melhor caminho nestas situações é o velho debug e muita paciência para revisar todas as ligações e codificações feitas com os componentes.

 

Dê uma parada e pense nas questões acima... talvez uma delas ajude a chegar na raiz do problema.

 

[ ]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.