Ir ao conteúdo
  • Cadastre-se

Leonardo Andrade

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

posts postados por Leonardo Andrade

  1. Resolvido!!!

    Pesquisa dinâmica em Delphi com 3 Edits, dbGrid, adotable e banco Acess, utilizando operador LIKE. 

     

    para quem interessar segue os códigos:

    procedure Tfrm_consulta.fcbox_categoriaChange(Sender: TObject);
    var
    cont: Integer;
    Filtro,
    Soma_Filtro: String;
    
    begin
      Filtro := '';
      Soma_Filtro := '';
      cont := 0;
    
      //no evento onChange do edit1 (fcbox_categoria)
      //para os demais edits inverter a ordem do if: começa essa linha por edit2 (fedit_autor) e assim sucessivamente
      if (fcbox_categoria.Text <> '') then
      begin
      cont := cont + 1;
      if cont = 1 then
      begin
      Filtro := ' CATEGORIA LIKE '+ QuotedStr('%'+fcbox_categoria.Text+'%');
      Soma_Filtro := Soma_filtro + Filtro;
      end else
      begin
      Filtro := ' AND CATEGORIA LIKE '+ QuotedStr('%'+fcbox_categoria.Text+'%');
      Soma_Filtro := Soma_Filtro + Filtro;
      end;
      end;
    
      begin
      if (fedit_autor.Text <> '') then
      begin
      cont := cont + 1;
      if cont = 1 then
      begin
      Filtro := ' AUTOR LIKE '+ QuotedStr('%'+fedit_autor.Text+'%');
      Soma_Filtro := Soma_Filtro + Filtro;
      end else
      begin
      Filtro := ' AND AUTOR LIKE '+ QuotedStr('%'+fedit_autor.Text+'%');
      Soma_Filtro := Soma_Filtro + Filtro;
      end;
      end;
    
      begin
      if (fedit_pesquisar.Text <> '') then
      begin
      cont := cont + 1;
      if cont = 1 then
      begin
      Filtro := ' PROBLEMA LIKE '+ QuotedStr('%'+fedit_pesquisar.Text+'%');
      Soma_Filtro := Soma_Filtro + Filtro;
      end else
      begin
      Filtro := ' AND PROBLEMA LIKE '+ QuotedStr('%'+fedit_pesquisar.Text+'%');
      Soma_Filtro := Soma_Filtro + Filtro;
      end;
      end;
    
      dm_egestor.adotable_bancodedados.Filter := Soma_Filtro;
      end;
      end;
    
    end;
    end.

    (a pesquisa é construída a medida que o usuário for preenchendo. Permite pesquisar em 1 ou N edits)

     

     

  2. 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;

     

     

     

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!