Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edersigner

Problemas com programação de Login

Recommended Posts

EDataBaseError with message 'Token unknown - line 1, char 74 LOGIN ', Process stopped. Use Step or Run to continue

 

Estou usando DBExpress com SQLConnection , SQLQuery , DatasetProvider, ClientDataSet , DataSource

 

 

procedure TLogin.Button1Click(Sender: TObject);

var

strSqlLog: string;

begin

strSqlLog:= 'SELECT * FROM TB_USUARIO, TB_PERFIL WHERE TB_USUARIO.NIVEL = IDPERFIL';

strSqlLog:= strSqlLog + 'AND LOGIN = ' + #39 + (ValorNome.Text) + #39 ;

strSqlLog:= strSqlLog + 'AND SENHA = ' + #39 + (valorSenha.Text) + #39 ;

 

menuPrin.qLogin.Close;

menuPrin.qLogin.SQL.Clear;

menuPrin.qLogin.SQL.Add(strSqlLog);

menuPrin.qLogin.Open;

 

if(menuPrin.qLogin.RecordCount) = 1 then

begin

menuPrin.StatusBar1.Panels[2].Text:= ' ' + 'Usuário: ' + login.ValorNome.Text +

' - ' + menuPrin.qLogin.FieldByName('DEPTO').AsString;

login.Close;

end;

end;

 

Qual é o problema não consigo solucionar ? O Campo LOGIN E SENHA EXISTE NO BANCO FIREBIRD 1.5

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você esta atribuindo o SQL para a variável, mas não esta deixando espaço entre os comandos, o certo seria:

 

strSqlLog:= 'SELECT * FROM TB_USUARIO, TB_PERFIL WHERE TB_USUARIO.NIVEL = IDPERFIL';
strSqlLog:= strSqlLog + ' AND LOGIN = ' + #39 + (ValorNome.Text) + #39;
strSqlLog:= strSqlLog + ' AND SENHA = ' + #39 + (valorSenha.Text) + #39;

Ou seja, colocando espaço antes do AND.

Uma outra forma ainda seria:

 

procedure TLogin.Button1Click(Sender: TObject);
begin
menuPrin.qLogin.Close;
menuPrin.qLogin.SQL.Clear;
menuPrin.qLogin.SQL.Add('SELECT * FROM TB_USUARIO, TB_PERFIL WHERE TB_USUARIO.NIVEL = IDPERFIL');
menuPrin.qLogin.SQL.Add('AND LOGIN = ' + #39 + (ValorNome.Text) + #39);
menuPrin.qLogin.SQL.Add('AND SENHA = ' + #39 + (valorSenha.Text) + #39);
menuPrin.qLogin.Open;

if(menuPrin.qLogin.RecordCount) = 1 then
begin
menuPrin.StatusBar1.Panels[2].Text:= ' ' + 'Usuário: ' + login.ValorNome.Text +
' - ' + menuPrin.qLogin.FieldByName('DEPTO').AsString;
login.Close;
end;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcio,

 

Fiz conforme você mostrou e aparentemente está correto mais ocorre um erro SQL error code = -206 Column unknown IDPERFIL At line 1, column 68. Column does not belong to referenced table.

 

O Select que fiz na Query está exatamente igual funcionou, e trouxe todos os campos das tabelas Usuario e Perfil, inclusive o campo IDPERFIL, e ocorre o erro, só que ao trocar o IDPERFIL por 0, no codigo do botão o sistema logou normalmente, porque já tinha cadastrado esse valor no banco antes, mas continuo com esse problema quando for cadastrar mais usuarios não vai dar certo ! Não sei como solucionar esse problema .... alias também coloquei no lugar do IDPERFIL a forma correta eu acho TB_PERFIL.IDPERFIL e não funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.