Query em tempo de execução no Delphi

26/09/2020

0

Olá a todos.
Criei um procedimento para verificar se um usuário está cadastrado no banco de dados.
Utilizo Firebird como BD e componentes Zeos para acessar o banco.
Resolvi criar uma query em tempo de execução para fazer a verificação. Não dá nenhum erro, porém, quando digito o nome do usuário no Edit e clico
no botão que executa o procedimento, Ele dá ''usuário inexistente'', mesmo se o nome do usuário estiver cadastrado no banco.

Segue o código:

procedure Tfrm_login.SpeedButton1Click(Sender: TObject);
var Qry : TZQuery;
begin
Qry:=TZQuery.Create(nil);
Qry.Connection := dm_dados.ZConnection1; //componente de conexão
Qry.SQL.Add(''select codigo, nome, acessar, user, pass from clientes'');
Qry.Open;
if Qry.Locate(''USER'',Edit1.Text,[]) then
begin
ShowMessage(''usuário cadastrado'');
end
else
begin
ShowMessage(''usuário inexistente'');
Edit1.SetFocus;
end;
FreeAndNil(Qry);
end;

Desde já agradeço a quem puder ajudar.
André Santos

André Santos

Responder

Post mais votado

28/09/2020

altere o procedimento. não faz sentido listar todos os registros pra depois fazer a busca.
faça o filtro diretamente na query.
procedure Tfrm_login.SpeedButton1Click(Sender: TObject);
var
	Qry: TZQuery;
begin
	Qry := TZQuery.Create(nil);
	Qry.Connection := dm_dados.ZConnection1; //componente de conexão
	Qry.SQL.Text := 'select user from clientes where UPPER(user) = '+QuotedStr(AnsiUpperCase(Edit1.Text));
	Qry.Open;
	if Qry.EOF then
	begin
		ShowMessage('usuário inexistente');
		Edit1.SetFocus;
	end
	else
		ShowMessage('usuário cadastrado')
	FreeAndNil(Qry);
end;

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

06/11/2020

André Santos

Olá Emerson Nascimento, muito obrigado pela resposta.
Consegui resolver utilizando sua dica. Obrigado!
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