Problemas com while em loop infinito
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?
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
Curtidas 0
Respostas
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
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
13/08/2015
SIm, ja tinha tentado comentar o if e deu certo, mas nao sabia disso do locate. Obrigado
GOSTEI 0