Ir para conteúdo
  • Cadastre-se

dev botao

PESQUISA


Ver Solução Respondido por Reinaldo Silveira,
  • Este tópico foi criado há 2706 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

ola pessoal 

estou com seguinte situação 

eu sei que tem o LIKE  '% agulha %

 

para trazer todos os produtos que contem o nome agulha nao importa a posição blz

 

mas agora tem outra coisa  o nome do produto por exemplo  AFASTADOR DE INCISÃO MEDIO

a pessoa que digitar 

 

"AFASTADOR MEDIO "    para trazer na busca , eu tentei usando o like mas nao da certo 

 

Postado
  Em 11/09/2017 at 19:51, dreamsoft_PR disse:

ola pessoal 

estou com seguinte situação 

eu sei que tem o LIKE  '% agulha %

para trazer todos os produtos que contem o nome agulha nao importa a posição blz

mas agora tem outra coisa  o nome do produto por exemplo  AFASTADOR DE INCISÃO MEDIO

a pessoa que digitar 

"AFASTADOR MEDIO "    para trazer na busca , eu tentei usando o like mas nao da certo 

 

Expandir  

Você vai ter que fazer uma consulta separando as strings pelo espaço (' ').

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

sergio@gigasistemas.com.br

Postado

Eu faço dessa forma ... talvez ajude
 

if Key=13 then begin
   ListBox.Items := Separar(eConsulta.Text,' ');
   qProdutos.Close;
   qProdutos.SQL.Text := 'select * from PRODUTOS where DESCRICAO like :vD1';
   qProdutos.ParamByName('vD1').AsString := '%'+ListBox.Items.Strings[0]+'%';

   if Listbox.Items.Count >= 2 then begin
      qProdutos.SQL.Add('and DESCRICAO like :vD2');
      qProdutos.ParamByName('vD2').AsString := '%'+ListBox.Items.Strings[1]+'%';
   end;

   if Listbox.Items.Count >= 3 then begin
      qProdutos.SQL.Add('and DESCRICAO like :vD3');
      qProdutos.ParamByName('vD3').AsString := '%'+ListBox.Items.Strings[2]+'%';
   end;

   if Listbox.Items.Count >= 4 then begin
      qProdutos.SQL.Add('and DESCRICAO like :vD4');
      qProdutos.ParamByName('vD4').AsString := '%'+ListBox.Items.Strings[3]+'%';
   end;

   qProdutos.SQL.Add('order by DESCRICAO');
   qProdutos.Open;
end;
function Separar(Text: String; Break: Char): TStringList;
var I: Integer; Pal: String;
begin
Result := TStringList.Create;
if (Length(Text) = 0) or (Break = '') then
  Result.Add(Text)
else
for I := 1 to Length(Text) do
  if Text[I] = break then begin
    Result.Add(Pal);
    Pal := '';
   end else Pal := Pal+Text[I];
if Pal <> '' then
  Result.Add(Pal);
end;

 

  • Obrigado 1
Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

sergio@gigasistemas.com.br

  • 1 mês depois ...
  • Solution
Postado

Observe que se você fazer a consulta assim: LIKE '%AFASTADOR%MEDIO%' você obterá resultado. Ou seja, substituindo o caractere espaço por porcentagem, sua pesquisa ficará mais flexível.

Tente algo assim:

qry.Close;
qry.SQL.Add('SELECT * FROM TB_PRODUTO WHERE DESCRICAO LIKE :pesquisa');
qry.Params[0].Value := '%'+ StringReplace(edtPesquisa.Text, ' ', '%', [rfReplaceAll]) +'%';
qry.Open;

Eu uso desta forma e nunca tive problemas.

  • Curtir 1
  • Obrigado 1
Postado
  Em 07/11/2017 at 18:56, Reinaldo Silveira disse:

Observe que se você fazer a consulta assim: LIKE '%AFASTADOR%MEDIO%' você obterá resultado. Ou seja, substituindo o caractere espaço por porcentagem, sua pesquisa ficará mais flexível.

Tente algo assim:

qry.Close;
qry.SQL.Add('SELECT * FROM TB_PRODUTO WHERE DESCRICAO LIKE :pesquisa');
qry.Params[0].Value := '%'+ StringReplace(edtPesquisa.Text, ' ', '%', [rfReplaceAll]) +'%';
qry.Open;

Eu uso desta forma e nunca tive problemas.

Expandir  

OBRIGADO simples e pratico , resolveu o problema!!

  • Obrigado 1
  • Este tópico foi criado há 2706 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 9 segundos...