Erro Verificação de Login
Estou tentando fazer uma verificação de login com o banco de dados, porém estou tendo erro de Open Methods Select/Like. Vou deixar o link do projeto para melhor entendimento. https://github.com/pasqualiin/Concessionaria.
O login é feito via CPF e a senha cadastrada pelo usuário.
No onClick do botão entrar estou fazendo o seguinte:
O login é feito via CPF e a senha cadastrada pelo usuário.
function TVendedorDAO.VerificarLogin(user, passw: string): Boolean;
var
SQL: string;
begin
SQL := ''SELECT C.cpf, C.senha from vendedor C where C.cpf like '' +
QuotedStr(user) + '' and C.senha like '' + QuotedStr(passw);
Result := ExecutarComando(SQL) > 0;
end;
No onClick do botão entrar estou fazendo o seguinte:
procedure TFrmLogin.SpeedButton1Click(Sender: TObject); begin VendedorDAO := TVendedorDAO.Create; VendedorDAO.VerificarLogin(edtUser.Text, edtPassw.Text); FrmPrincipal.ShowModal; end;
Guilherme Algeri
Curtidas 0
Melhor post
Emerson Nascimento
30/09/2020
quando você trabalha com SELECT, o método utilizado precisa ser OPEN
ExecSQL deve ser utilizado para os demais comandos (UPDATE, DELETE, DROP, etc)
ExecSQL deve ser utilizado para os demais comandos (UPDATE, DELETE, DROP, etc)
GOSTEI 2
Mais Respostas
Emerson Nascimento
30/09/2020
aparentemente a função VerificarLogin está correta.
é preciso saber como foi implementada a função ExecutarComando().
function TVendedorDAO.VerificarLogin(user, passw: string): Boolean; var SQL: string; begin SQL := 'SELECT cpf, senha from vendedor where cpf = ' + QuotedStr(user) + ' and senha = ' + QuotedStr(passw); Result := ExecutarComando(SQL) > 0; end;
é preciso saber como foi implementada a função ExecutarComando().
GOSTEI 0
Guilherme Algeri
30/09/2020
aparentemente a função VerificarLogin está correta.
é preciso saber como foi implementada a função ExecutarComando().
function TVendedorDAO.VerificarLogin(user, passw: string): Boolean; var SQL: string; begin SQL := 'SELECT cpf, senha from vendedor where cpf = ' + QuotedStr(user) + ' and senha = ' + QuotedStr(passw); Result := ExecutarComando(SQL) > 0; end;
é preciso saber como foi implementada a função ExecutarComando().
A função ExecutarComando:
function TBaseDAO.ExecutarComando(pSQL: string): integer;
begin
Try
DM.Conn.StartTransaction;
FQuery.SQL.Text := pSQL;
FQuery.ExecSQL;
Result := FQuery.RowsAffected;
DM.Conn.Commit;
except
DM.Conn.Rollback;
End;GOSTEI 0
Emerson Nascimento
30/09/2020
crie uma outra função para usar com esse tipo de análise:
e use assim:
function TBaseDAO.HaRegistro(pSQL: string): integer;
begin
Try
FQuery.SQL.Text := pSQL;
FQuery.Open;
Result := not FQuery.Eof;
FQuery.Close;
except
Result := false;
end;
end;e use assim:
function TVendedorDAO.VerificarLogin(user, passw: string): Boolean;
begin
Result := HaRegistro('SELECT cpf, senha from vendedor where cpf = ' + QuotedStr(user) + ' and senha = ' + QuotedStr(passw));
end;GOSTEI 1