Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
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.
Veja nesta seção do fórum existe dois exemplos de como fazer este tipo de controle, pode lhe ajudar...
Você esta atribuindo o SQL para a variável, mas não esta deixando espaço entre os comandos, o certo seria:
Ou seja, colocando espaço antes do AND.Uma outra forma ainda seria:
procedure TLogin.Button1Click(Sender: TObject);
begin
if(menuPrin.qLogin.RecordCount) = 1 then
begin
menuPrin.StatusBar1.Panels[2].Text:= ' ' + 'Usuário: ' + login.ValorNome.Text +