No evento OnChange de um TEdit, ou em um evento similar de
qualquer componente:

 

            DataSet.Locate( ‘NOME’, Edit1.Text, [ loPartialKey ] );

 

 

----------------------------------------------

Vitor Luiz Redes

----------------------------------------------

Bureau & Redsystem Software

[EMAIL PROTECTED]

  _____  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Angelo Louzada
Enviada em: sexta-feira, 8 de fevereiro de 2008 12:05
Para: delphi-br@yahoogrupos.com.br
Assunto: Res: [delphi-br] Como montar uma pesquisa por aproximação

 

Opa, já tentei com o operador like porém o que eu estava querendo era o
seguinte:

A medida que o usuário fosse digitando fosse mostrando no grid o resultado
palavra o palavra ou seja, tenho no grid no campo nome os seguintes
registros:

Ana Cecília
Ana Maria
Angela Silva
Anderson Vieira

A medida que o usuário fosse digitando em um Edit os caracteres Ang o cursor
do grid já iria se posicionando, através do seu exemplo o usuário digita o
nome ou parte do nome e manda fazer a pesquisa e eu queria que isso
acontecesse a medida que o usuário fosse digitando caractér por caractér
parecido com o comportamento do DBLookupComboBox.

----- Mensagem original ----
De: Claudiney Cogo <claudiney-listas@
<mailto:claudiney-listas%40n2solutions.com.br> n2solutions.com.br>
Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
Enviadas: Sexta-feira, 8 de Fevereiro de 2008 9:25:52
Assunto: Re: [delphi-br] Como montar uma pesquisa por aproximação

Olá Angelo.

É tranquilo... Já que você tá usando o IBQuery é melhor trabalhar direto com
o SQL que passa pra ele.
Na entrada do form você, se preferir, carrega tudo.. (cuidado com tabelas
muito grandes).. usando um comando como esse:

IBQryTabela. SQL.Clear;
IBQryTabela. Sql.Add(' Select * from SuaTabela');
IBQryTabela. Active := True;

Depois no evento CHANGE do edit você altera o comando incluindo a opção
like:

IBQryTabela. SQL.Clear;
IBQryTabela. Sql.Add(' Select * from SuaTabela where CampoTabela like ' +
QuotedStr(Edit1. Text + '%') +
' order by CampoTabela' );
IBQryTabela. Active := True;

Isso supondo que você esteja fazendo a pesquisa por um campo string, como
nome ou descrição. 
Aqui o comando procura o que você digita no início do campo. Caso queira
procurar em qualquer posição coloque um % antes do Edit1.Text também 

IBQryTabela. SQL.Clear;
IBQryTabela. Sql.Add(' Select * from SuaTabela where CampoTabela like ' +
QuotedStr('% ' + Edit1.Text + '%') +
' order by CampoTabela' );
IBQryTabela. Active := True;

Porém, tome um certo cuidado com bases muito grandes. Esse tipo de consulta
pode causar um pouco de perda de performance. Nesse caso é melhor não abrir
a tabela toda na entrada e digitar tudo o que deseja buscar primeiro, para
depois fazer a busca e selecionar só o que interessa. Isso reduz muito o
tamanho do dataset que será retornado.

Espero que seja isso.

Abraço.

____________ _________ _________ _______
Claudiney Cogo
N2 Sistemas e Soluções em Informática
Av. São Paulo, 172 - 15º Andar - Sala 1505
Maringá - Paraná
www.n2solutions. com.br
www.studion2. com.br
----- Original Message ----- 
From: Angelo Louzada 
To: [EMAIL PROTECTED] os.com.br 
Sent: Friday, February 08, 2008 7:30 AM
Subject: [delphi-br] Como montar uma pesquisa por aproximação

Amigos, estou utilizando um IBQuery trazendo os dados da tabela de clientes
e mostrando em um DBGrid gostaria que meu usuário digitasse em um Edit o
nome do cliente e a medida que ele fosse digitando o nome do cliente o
DBGrid fosse realizando o filtro palavra por palavra, alguém sabe como posso
implementar isso?

Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
armazenamento!
http://br.mail. yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]

__________ NOD32 2857 (20080207) Information __________

This message was checked by NOD32 antivirus system.
http://www.eset. com

[As partes desta mensagem que não continham texto foram removidas]

Abra sua conta no Yahoo! Mail, o único sem limite de espaço para
armazenamento!
http://br.mail. <http://br.mail.yahoo.com/> yahoo.com/

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]

Responder a