Problemas com while em loop infinito

SQL

Delphi

13/08/2015

Galera, estou tendo problemas com um loop infinito nesse programa

while not DM.tblRelacoes.eof do
begin //begin eof
if (DM.tblRelacoes.Locate('Funcionario',id2,[])=true) and (DM.tblRelacoes.Locate('Projeto',id,[])=true) then //se encontrar a relaçao, altera o valor de cont
cont:=cont+1;
DM.tblRelacoes.Next;
end;


mesmo com o next, o programa simplesmente nao avança de posição no banco de dados, alguem tem alguma ideia do que pode esta acontecendo?
Luiz Neto

Luiz Neto

Curtidas 0

Respostas

Lucas Ramos

Lucas Ramos

13/08/2015

Quando da o locate ele fica alterando a posição da query, por isso fica no loop infinito.
Aconselho não usar o locate dentro de um While na própria query, comenta o If que vai ver que não vai ficar no loop infinito
GOSTEI 0
Luiz Neto

Luiz Neto

13/08/2015

SIm, ja tinha tentado comentar o if e deu certo, mas nao sabia disso do locate. Obrigado
GOSTEI 0
POSTAR