You have an error in your SQL Syntax;

28/03/2013

0

Olá pessoal. Podem me ajudar no seguinte erro:

"You have an error in your SQl syntax; check the manual that corresponds to your MySQL server version for the rigth syntax to use near 'BYnome at line 2."

Ele ocorre após esse comando:

procedure TF_Funcionarios.procura;

begin
if ProcuraProd.Text <> '' then begin
if nCol = '' then
Application.MessageBox('Primeiro Ordene um Coluna para Realizar a Consulta','Clique em um Titulo', MB_OK + MB_IconError)
else begin
F_Dados.Q_Funcionarios.Active := False;
F_Dados.Q_Funcionarios.SQL.Clear;
F_Dados.Q_Funcionarios.SQL.Add('SELECT * FROM FUNCIONARIO WHERE LIKE '+#39+ProcuraProd.Text+'%'+#39);
F_Dados.Q_Funcionarios.SQl.Add('ORDER BY');
F_Dados.Q_Funcionarios.Active := True;
end;
end;
end;


Valeu!!!
Christiano Treib

Christiano Treib

Responder

Posts

28/03/2013

Joel Rodrigues

Entre o WHERE e o LIKE falta o nome do campo pelo qual você deseja buscar.
Responder

28/03/2013

Bruno Leandro

Alem do Where no Order by tambem precisa informar o campo que deve ser a variavel nCol, se for isso ficaria assim

F_Dados.Q_Funcionarios.Active := False;
F_Dados.Q_Funcionarios.SQL.Clear;
F_Dados.Q_Funcionarios.SQL.Add('SELECT * FROM FUNCIONARIO WHERE '+nCol+' LIKE '+quotedstr(ProcuraProd.Text+'%'));
F_Dados.Q_Funcionarios.SQl.Add('ORDER BY '+nCol);
F_Dados.Q_Funcionarios.Active := True;
Responder

28/03/2013

Joel Rodrigues

Vixe, pode crer... nem reparei nesse segundo "detalhe".
Responder

01/04/2013

Christiano Treib

Boa noite Pessoal.

Muito Obrigado pela antençao de todos.

Tentei fazer da forma que pediram e mesmo assim o mesmo erro permanece.
Uma pergunta de Um leigo:
Isso nao tem nada a ver com o SQL que estou usando ne?
Responder

02/04/2013

William

Colega basicamente sua instrução SQL não está errada, só mal organizado!

O Joel e o Bruno já postaram as dicas corretas para corrigir, mas vou dar um exemplo prático usando um campo fictício para ajudar vc a entender.

procedure TF_Funcionarios.procura;
begin
if ProcuraProd.Text <> '' then begin
if nCol = '' then
Application.MessageBox('Primeiro Ordene um Coluna para Realizar a Consulta','Clique em um Titulo', MB_OK + MB_IconError)
else begin
F_Dados.Q_Funcionarios.Active := False;
F_Dados.Q_Funcionarios.SQL.Clear;
F_Dados.Q_Funcionarios.SQL.Add('SELECT * FROM FUNCIONARIO WHERE NOME LIKE '+ QuotedStr(ProcuraProd.Text + '%'));
F_Dados.Q_Funcionarios.SQl.Add('ORDER BY NOME');
F_Dados.Q_Funcionarios.Active := True;
end;
end;
end;


1 - Observe que no exemplo acima meu filtro é baseado no campo NOME ('WHERE NOME LIKE' + QuotedStr(ProcuraProd.Text + '%')), estou supondo que exista esse campo na sua tabela FUNCIONARIO, mas vc pode alterar para o campo de sua necessidade;

2 - Mandei ordenar também baseado no campo NOME ('ORDER BY NOME');

3 - Chamou atenção esse nome de edit "ProcuraProd" para consulta de funcionário!

É isso, qualquer dúvida poste novamente....

Responder

02/04/2013

Christiano Treib

Olá, primeiramente obrigado pela ajuda.

Dessa vez o Código nao deu erro, só nao esta funcionando...rsrs
Realizo a função mas nao ocorre nada.
Eu uso um SpeedButton para executar a função "procura", porem nao acontece nada.

Revisei a Conexão e conforme minha analize esta tudo correto.
Oque você acha que pode ser???

Obrigado.
Responder

17/05/2013

Christiano Treib

Bom pessoal. Primeiramente desculpa pela demora da resposta.
Pois tinha esquecido de respoder.
Mas deu certo wllfl.
O que você me disse analisei e deu certo.

Muito Obrigado.
Responder

17/05/2013

Joel Rodrigues

Obrigado pelo retorno, Christiano. Que bom que deu certo.
Estou então marcando o tópico como CONCLUÍDO.
Abraço.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar