.EOF causando travamento do programa

07/06/2016

0

Olá a todos!

Estou utilizando a seguinte sintaxe para verificar se o código de barras digitado no Edit existe no banco de dados, porém quando ela é acionada o programa trava, alguem saberia dizer porque?

while not FMForm.produtoQuery.Eof do
begin
if(FMForm.produtoQuery['codigobarras']) <> edt_codbarras.Text then
FMForm.produtoQuery.Next;
end;
Vitor Ferreira

Vitor Ferreira

Responder

Posts

07/06/2016

Luiz Menin

A lógica está errada.
Quando ele encontra o dado (codigobarras = edt_codbarras) simplesmente não é tomada nenhuma ação, ou seja, ele não dá Next e retorna o while e entra em loop infinito, travando a aplicação.
Utilize a função Locate ao invés do while, ou, uma opção ainda melhor é consultar direto ao banco de dados via Query.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar