Trocar dados query para table

Delphi

CRUD - Delphi

23/01/2019

Boa noite, tô tentando criar um edit com lista suspensa, depois de muito pesquisar encontrei um código que talvez funcione, porém ele tem Query e eu não uso.

Então vem a questão, como faria pra usar table no lugar dessa query. Tenho dm_dados.tbclientes é o que desejo pesquisar e quero que apareça na lista suspensa tipo o google conforme for digitando ele vá pesquisando e mostrando o que for encontrado.

Código:
procedure TForm1.Edit1Change(Sender: TObject);
begin
   Query1.Active := false;
   ClientDataSet1.Active := false;
   Query1.sql.Clear;
   Query1.sql.Append('select * from produtos where DESCRICAO like :DESC');

   Query1.Params[0].DataType := ftString;
   Query1.Params[0].ParamType := ptInput;

   ClientDataSet1.Params[0].DataType := ftString;
   ClientDataSet1.Params[0].ParamType := ptInput;

   ClientDataSet1.Params[0].AsString := Edit1.Text+'%';

   Query1.Active := true;
   ClientDataSet1.Active := TRUE;

   DBLookupComboBox1.DropDown;
end;
Gilson

Gilson

Curtidas 0

Melhor post

Jucélio Silva

Jucélio Silva

23/01/2019

E ae Gilson, blz cara ....

Então , eu trabalho com Delphi a mais de 10 anos cara, e a primeira dica que te dou é esquece componente table, mesmo em projetos pequenos não recomendo o uso devido não ter a flexibilidade necessária para muitas coisas e deixar o processo cacheado em memoria . Bem se mesmo assim ainda quiser usar componente table segue um exemplo de como fazer isso que quer :

procedure TForm1.Edit1Change(Sender: TObject); // no evento OnChange você coloca o filtro que quer fazer
begin
  ADOTable1.Close;
  ADOTable1.TableName:= 'produtos'; // passa a tabela caso nao tenha deixado fixo
  ADOTable1.Filter:= 'descricao like '+QuotedStr('%'+Edit1.Text+'%'); // passa o filtro para a pesquisa
  ADOTable1.Filtered:=true; // ativa o filtro
  ADOTable1.Open; // abre a consulta

// o resultado dessa consulta você aplica no componente que quer listar os dados, pode ser um lockup ou uma grid, ai vai da forma que quer apresentar, só reforçando , sai dessa de table e começa a migra para query , isso vai te dar flexibilidade e liberdade em suas consultas.
end;


Boa sorte com seu código...
GOSTEI 1

Mais Respostas

Gilson

Gilson

23/01/2019

E ae Gilson, blz cara ....

Então , eu trabalho com Delphi a mais de 10 anos cara, e a primeira dica que te dou é esquece componente table, mesmo em projetos pequenos não recomendo o uso devido não ter a flexibilidade necessária para muitas coisas e deixar o processo cacheado em memoria . Bem se mesmo assim ainda quiser usar componente table segue um exemplo de como fazer isso que quer :


Boa sorte com seu código...




Boa noite Jucélio, no caso eu comecei aprender sobre delphi por indicação de um amigo, você acha que eu deveria usar que tipo de banco de dados e qual componentes seria melhor?


Se for possível me passa um e-mail, whatsapp ou até mesmo um artigo que você acha que eu possa compreender melhor.
E-mail: gilson.oliver13@gmail.com
Tel.: (79) 99108-2648
GOSTEI 0
Claudio Andrade

Claudio Andrade

23/01/2019

Se você está começando agora, sugiro começar a estudar o Rest Dataware. É um framework para delphi e lazarus feito por brasileiros, e você já começa desenvolver baseado em 3 camadas.
O legal é que o pessoal disponibiliza vários canais para tirar dúvidas e também cursos que caso você compre, ajuda a manter o projeto.

https://www.restdw.com.br
GOSTEI 0
Jucélio Silva

Jucélio Silva

23/01/2019

E ae Gilson, blz cara ....

Então , eu trabalho com Delphi a mais de 10 anos cara, e a primeira dica que te dou é esquece componente table, mesmo em projetos pequenos não recomendo o uso devido não ter a flexibilidade necessária para muitas coisas e deixar o processo cacheado em memoria . Bem se mesmo assim ainda quiser usar componente table segue um exemplo de como fazer isso que quer :


Boa sorte com seu código...




Boa noite Jucélio, no caso eu comecei aprender sobre delphi por indicação de um amigo, você acha que eu deveria usar que tipo de banco de dados e qual componentes seria melhor?


Se for possível me passa um e-mail, whatsapp ou até mesmo um artigo que você acha que eu possa compreender melhor.
E-mail: gilson.oliver13@gmail.com
Tel.: (79) 99108-2648



Passei meu contato do Skype no seu e-mail, add lá que trocamos ideia... XD
GOSTEI 0
POSTAR