Fazer consulta SQL no delphi
29/12/2015
0
oQuery.Close;
oQuery.SQL.Clear;
oQuery.SQL.Add('SELECT *');
oQuery.SQL.Add('FROM #TabTemp');
oQuery.SQL.Add('WHERE DES_PROD LIKE "%" ' + EditPesquisa.Text + ' "%" ');
oQuery.Open;
Quando tento abrir a query, recebo o erro na segunda linha. Se alguém puder me ajudar eu agradeço.
Matheus Gomes
Posts
29/12/2015
Douglas
Você poderia postar o código com o erro? Assim fica mais fácil de analisar. :)
29/12/2015
William
SELECT *FROM #TabTempWHERE DES_PROD LIKE "%" ' + EditPesquisa.Text + ' "%"
Adicionando espaços ao final das concatenações:
oQuery.Close; oQuery.SQL.Clear; oQuery.SQL.Add('SELECT * '); oQuery.SQL.Add('FROM #TabTemp '); oQuery.SQL.Add('WHERE DES_PROD LIKE "%" ' + EditPesquisa.Text + ' "%" '); oQuery.Open;
29/12/2015
Douglas
Permita-me fazer uma pequena correção no código? Segue abaixo:
oQuery.Close; oQuery.SQL.Clear; oQuery.SQL.Add('SELECT * '); oQuery.SQL.Add('FROM #TabTemp '); oQuery.SQL.Add('WHERE DES_PROD LIKE ' + QuotedStr('%' + EditPesquisa.Text + '%'); oQuery.Open;
No código postado pelo Mateus, irá apresentar um erro ao executar a query por falta de aspas no parâmetro de pesquisa. Isso pode ser facilmente resolvido através da função QuotedStr, pois a mesma adiciona as aspas. É importante que ele post o código com o erro para identificarmos realmente o que é.
27/12/2022
Armaky
Permita-me fazer uma pequena correção no código? Segue abaixo:
oQuery.Close; oQuery.SQL.Clear; oQuery.SQL.Add('SELECT * '); oQuery.SQL.Add('FROM #TabTemp '); oQuery.SQL.Add('WHERE DES_PROD LIKE ' + QuotedStr('%' + EditPesquisa.Text + '%'); oQuery.Open;
No código postado pelo Mateus, irá apresentar um erro ao executar a query por falta de aspas no parâmetro de pesquisa. Isso pode ser facilmente resolvido através da função QuotedStr, pois a mesma adiciona as aspas. É importante que ele post o código com o erro para identificarmos realmente o que é.
27/12/2022
Arthur Heinrich
Permita-me fazer uma pequena correção no código? Segue abaixo:
oQuery.Close; oQuery.SQL.Clear; oQuery.SQL.Add('SELECT * '); oQuery.SQL.Add('FROM #TabTemp '); oQuery.SQL.Add('WHERE DES_PROD LIKE ' + QuotedStr('%' + EditPesquisa.Text + '%'); oQuery.Open;
No código postado pelo Mateus, irá apresentar um erro ao executar a query por falta de aspas no parâmetro de pesquisa. Isso pode ser facilmente resolvido através da função QuotedStr, pois a mesma adiciona as aspas. É importante que ele post o código com o erro para identificarmos realmente o que é.
Além de corrigir o problema das aspas simples, ao utilizar o QuotedStr() evitamos problemas com SQL Injection.
Porém, ainda resta um problema de performance, uma vez que o texto pesquisado sempre inicia com '%', invalidando qualquer possibilidade de uso de índices.
Clique aqui para fazer login e interagir na Comunidade :)