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