Opa, eai pessoal!
Tô tendo uns problemas com minha aplicação.
Não estou conseguindo aplicar SQL abaixo na query da minha aplicação delphi.
Quando rodo "SELECT * FROM BANCODEDADOS WHERE PROBLEMA LIKE '%casa%' AND PROBLEMA LIKE '%amarela%' " no SQL Server, o resultado é o esperado:
mostra todos resultados que contenham ambas as palavras, independente da ordem que as escrevo, ou seja:
TABELA: BANCODEDADOS
CAMPO: |PROBLEMA |
|casa amarela| VALORES
|amarela casa| VALORES
o problema é que não estou conseguindo fazer o mesmo no delphi ao digitar os valores em um edit (fedit_pesquisar)
Evento on change:
dm_egestor.adoquery_egestor.Close;
dm_egestor.adoquery_egestor.SQL.Clear;
dm_egestor.adoquery_egestor.SQL.Add('SELECT * FROM BANCODEDADOS WHERE PROBLEMA LIKE '+ QuotedStr('%'+fedit_pesquisar.Text+'%')+' AND PROBLEMA LIKE '+ QuotedStr('%'+fedit_pesquisar.Text+'%')+'');
dm_egestor.adoquery_egestor.Open;
O resultado no meu dbgrid deveria ser todos os resultados que contenha as palavras digitadas pelo usuário no edit, independente da ordem.
Fiz utilizando o FILTER também (porém sem sucesso):
//if fedit_pesquisar.Text = '' then
//dm_egestor.adoquery_egestor.Filtered := False
//else begin
//dm_egestor.adoquery_egestor.Filter := 'PROBLEMA LIKE ' + QuotedStr('*'+ fedit_pesquisar.Text +'*') + ' AND ' + 'PROBLEMA LIKE ' + QuotedStr('*'+ fedit_pesquisar.Text +'*');
//dm_egestor.adoquery_egestor.Filtered := True;
//end;