Jump to content

Delphi chamada_delphi.png acbr.png

C6 chamada_c6.png botao.png

PESQUISA


dreamsoft_PR
Go to solution Solved by Reinaldo Silveira,
  • Este tópico foi criado há 1656 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

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 

 

Link to comment
Share on other sites

  • Membros Pro
18 minutos atrás, 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 

 

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

 

[email protected]

Link to comment
Share on other sites

  • Membros Pro

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;

 

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

Projeto ACBr

 

[email protected]

Link to comment
Share on other sites

  • 1 month later...
  • Solution

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.

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

1 hora atrás, 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.

OBRIGADO simples e pratico , resolveu o problema!!

  • Thanks 1
Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.