Erro numa Query

Delphi

21/03/2004

Beleza pessoal

Coisa estranha nesta procedure

procedure TLogin.Button1Click(Sender: TObject); var strSqlLog: string; begin strSqlLog:= ´SELECT * FROM usuario,perfil WHERE usuario.nivel = [color=red:e9fe4545b7][b:e9fe4545b7]perfil.id ´[/b:e9fe4545b7][/color:e9fe4545b7]; strSqlLog:= strSqlLog + ´AND fantasia = ´ + #39 + (valorNome.Text) + 39; strSqlLog:= strSqlLog + ´AND senha = ´ + 39 + (valorSenha.Text) + 39; menuPrin.QueryLogin.Close; menuPrin.QueryLogin.SQL.Clear; menuPrin.QueryLogin.SQL.Add(strSqlLog); menuPrin.QueryLogin.Open; if (menuPrin.QueryLogin.RecordCount) = 1 then begin menuPrin.StatusBar1.Panels[2].Text:= ´ ´ + ´Usuário: ´ + Login.ValorNome.Text + ´ - ´ + menuPrin.QueryLogin.FieldByName(´dpto´).AsString; Login.Close; end


Aonde esta marcado em vermelho, se eu deixar a aspa junto do PERFI.ID da pau na hora de executar, se deixar separado funfa na boa.

Alguem saberia me dizer o porque disto ocorrer.

Tava que nem doido verificando todas as tabelas

Obrigado


Chico Gois

Chico Gois

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

21/03/2004

Quando vc deixa a aspa junto de perfil.id, a linha debaixo começa com AND ..

a instrução sql fica assim:
.... perfil.idAND... dá erro na execução.

e deixando um espaço no final:
.... perfil.id AND... funciona.


GOSTEI 0
Chico Gois

Chico Gois

21/03/2004

Valeu!..... :oops:

Não prestei atenção neste detalhe.

As vezes são pequenos detalhes que deixa a gente doido.... :D


T+


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

21/03/2004

Colega,

Você pode simplificar um pouco mais e utilizar da seguinte forma:

procedure TLogin.Button1Click(Sender: TObject); 
begin
menuPrin.QueryLogin.Close;
menuPrin.QueryLogin.SQL.Text := ´SELECT * FROM usuario,perfil WHERE usuario.nivel = perfil.id´ +
                                ´ AND fantasia = ´ + QuotedStr(valorNome.Text)+
                                ´ AND senha = ´ + QuotedStr(valorSenha.Text);
menuPrin.QueryLogin.Open;
if (menuPrin.QueryLogin.RecordCount) = 1 then
begin
  menuPrin.StatusBar1.Panels[2].Text:= ´ ´ + ´Usuário: ´ + Login.ValorNome.Text + ´ - ´ + menuPrin.QueryLogin.FieldByName(´dpto´).AsString;
  Login.Close;
end



GOSTEI 0
Chico Gois

Chico Gois

21/03/2004

[quote:cb55d6818f=´Aroldo Zanela´]Colega,

Você pode simplificar um pouco mais e utilizar da seguinte forma:

procedure TLogin.Button1Click(Sender: TObject); 
begin
menuPrin.QueryLogin.Close;
menuPrin.QueryLogin.SQL.Text := ´SELECT * FROM usuario,perfil WHERE usuario.nivel = perfil.id´ +
                                ´ AND fantasia = ´ + QuotedStr(valorNome.Text)+
                                ´ AND senha = ´ + QuotedStr(valorSenha.Text);
menuPrin.QueryLogin.Open;
if (menuPrin.QueryLogin.RecordCount) = 1 then
begin
  menuPrin.StatusBar1.Panels[2].Text:= ´ ´ + ´Usuário: ´ + Login.ValorNome.Text + ´ - ´ + menuPrin.QueryLogin.FieldByName(´dpto´).AsString;
  Login.Close;
end
[/quote:cb55d6818f]



Valeu!

Vivendo e aprendendo........ :lol: :lol: :lol:

T+


GOSTEI 0
POSTAR