.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?
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;
begin
if(FMForm.produtoQuery['codigobarras']) <> edt_codbarras.Text then
FMForm.produtoQuery.Next;
end;
Vitor Ferreira
Curtir tópico
+ 0
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.
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
Clique aqui para fazer login e interagir na Comunidade :)