Array
(
)

Fazer consulta SQL no delphi

Matheus Gomes
   - 29 dez 2015

Bom, o que estou tentando fazer é um Select em uma tabela temporária no Delphi pelo componente TQuery. Segue o código abaixo:
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.

Douglas Claudio
|
MVP
Pontos: 100
    29 dez 2015

Opa Matheus, tudo bem?

Você poderia postar o código com o erro? Assim fica mais fácil de analisar. :)

William (devwilliam)
   - 29 dez 2015

Um dos motivos está na concatenação de strings, faltando espaços então sua instrução SQL estava sendo executada assim:
#Código

SELECT *FROM #TabTempWHERE DES_PROD LIKE "%" ' + EditPesquisa.Text + ' "%"


Adicionando espaços ao final das concatenações:
#Código
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;

Douglas Claudio
|
MVP
Pontos: 100
    29 dez 2015

Opa William, tudo bem?

Permita-me fazer uma pequena correção no código? Segue abaixo:

#Código

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 é.

William (devwilliam)
   - 29 dez 2015

Perfeito Douglas.