You have an error in your SQL Syntax;

28/03/2013

1

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!!!
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
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
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
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
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira