Consulta em modo rapido

Delphi

11/11/2004

para fazer consultas de modo rápido, digamos tenho um edit e um dbgrid
tenho uma tabela clientes vinculado com dbgrip aí quando vou digitando no edit o nome de um dos clientes M -> no grid já mostra todos q começam com M, depois A, todos q começam com MA depois MAR todos q começam com MAR, como faço, da pra eu fazer assim
select * from cliente where Nome like ´´+Edit1.text+´¬´?
se for assim onde coloco esse código?


Luiz_aquino

Luiz_aquino

Curtidas 0

Respostas

Bruno Belchior

Bruno Belchior

11/11/2004

coloque o evento OnChange do Edit (esse evento é disparado toda vez que ocorre uma alteração ´Change´ na propriedade Text do Edit)
  with Query1 do
  begin
     Close;
     SQL.Text := ´select * from cliente where Nome like :ParNome´;
     ParByName(´ParNome´).AsString := Edit1.Text+´¬´;
     Open;
   end; 

mas aviso que isso pode te custar muita banda em rede (caso esteja usando) é melhor filtrar cada vez que o usuário teclar enter, ou seja quando ele digitar um nome e depois enter o programa traz todos os resultados possíveis... espero ter ajudado


GOSTEI 0
Toninhonunes

Toninhonunes

11/11/2004

para fazer consultas de modo rápido, digamos tenho select * from cliente where Nome like ´´+Edit1.text+´¬´? se for assim onde coloco esse código?


Isso é bonito, no entanto não recomendado para ambiente de rede, ainda mais se for trabalhar de forma remota, faça consulta com apenas uma restrição por vez, ficar disparando eventos no banco de dados, causa lentidão e se for utilizar em muitos terminais a performance vai cair muito.

No entanto, se for utilizar apenas em uma ou duas máquinas os efeitos colaterais não são tão percebidos.

T+


GOSTEI 0
Osocram

Osocram

11/11/2004

Recomendo q utilize ClientDataSet pois ele guarda os dados em memoria.. e enton usar o Filter dele ou mesmo um locate p achar os dados... mto mais rapido. (principalmente em ambiente multiusuario ou ond use rede)


GOSTEI 0
POSTAR