Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 20 de Julho de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
36 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Artigos]  Como buscar uma pessoa numa tabela pelo sobrenome
Publicado por TiagoJMilam : Quarta, Setembro 01, 2004 - 11:39 GMT-3 (7800 leituras)
Comentários 5 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Neste artigo irei mostrar a vocês uma maneira super eficiente de você buscar em uma tabela um cliente pelo seu sobrenome !
Iremos usar para exemplo uma tabela paradox com os seguintes campos :

Codigo N *
Nome A 45
Telefone N
...
Acrescente mais campos , como você quiser , mas o campo Nome tem que "existir" ... :)

Bom , depois que você criou o corpo da tabela , salve ela em C:\Teste\tbclientes.db .
Cadastre pelo DataBase Desktop mesmo , algums clientes , coloque por exemplo , ums 5 clientes com nomes diferentes e sobrenomes iguais e 2 com outros sobrenomes !
Depois , crie um Novo Aplicativo ; e em seguida , no form , coloque os seguintes componentes :

1 Edit
1 DBGrid
1 Query
1 DataSource

Sigas corretamente os passos abaixo :

Na propriedade DataBaseName do Query , coloque o diretório : C:\Teste
na Propriedade SQL , digite :

SELECT CODIGO, NOME, TELEFONE
FROM "tbclientes.DB" tbclientes
WHERE (NOME LIKE :sNome)

Como podemos observar nessa rotina SQL , indicamos um parâmetro , que é sNome , então , entre na propriedade Params do Query , e selcione o nosso parametro criado sNome , depois na propriedade "DataType" , indique "ftString" , na Propriedade "ParamType", indique "ptinput" e por fim na propriedade "Value" , digite % .
Deixe a propriedade "Active" da Query ,em False e pronto , as regulagens da Query estão feitas .
Depois , ligue o DataSource ao Query , e o DBGrid ao Data Source . depois de fazer as "linkagens" indicadas , vá ao envento "OnChange" do nosso Edit , e digite o seguinte depois da clausula BEGIN:

Query1.Active:= False;
Query1.ParamByName('sNome').Value := '%'+edit1.text;
Query1.Active:=True;

O que fizemos ?
Primeiro desabilitamos a Query ; em seguida passamos parâmetros , isto é , indicamos que no parametro : sNome , será recebido algum valor , que vor digitado no edit tal ...

Por fim , na propriedade OnShow do Form que está se trabalhando , indique depois da clausula begin :

Query1.Open;

E no evento OnClose do mesmo Form :

Query1.Close;

Rode o aplicativo e teste para ver ! Digite no edit1 o sobrenome de alguma das pessoas cadastradas na tabela , por exemplo se tivermos cadastrado na tabela 5 Andrade e 20 Silva , e você digitar no edit1 a palavra Silva , ira aparecer no DBGrid todos os 20 Silva's ! E se digitar Andrade , irá aparecer os 5 Andrade's ... e assim por diante ...

Espero que sejá um artigo de muita utilidade para vocês , se houver algum erro podem me contactar que irei lhes ajudar com o maior prazer !

Meu e-mail pra contato é : tiagojmilam@bol.com.br
tiagomilam@homtail.com

Meu MSN é : timicrosystems@hotmail.com

Valeuuuuuu Galera !


Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: Jocelio : Set 28, 2004 - 07:47
(Informações sobre o membro | Enviar uma mensagem) http://http://
Cara, Parabéns um artigo tipico para quem esta iniciando no delphi, como eu ! bem didático e de bastante utilidade. valeu , Ass Jocélio :-)


por: wrabelo : Dez 27, 2004 - 09:17
(Informações sobre o membro | Enviar uma mensagem) http://www.hostmax.com.br
Sabe, concordo que é bem útil, mas imagine que você tem uma tabela com 2 milhões e meio de registros.
Não ficaria um pouco lento? a Performance não sairia prejudicada? Como tratar este caso?


por: gauchalice : Set 25, 2007 - 10:50
(Informações sobre o membro | Enviar uma mensagem) http://
Agradeço, sou iniciante e precisava de uma ajuda exatamente assim. fiquei com uma dúvida.
O dbgrid só pode ser "linkado" pra um datasource?
eu preciso utilizar várias buscas como nome, telefone...e gostaria de seguir os mesmos passos deste artigo, como eu faço para aparecer outras buscas num mesmo dbgrid?


por: brainlock (herminiolpaesjr@gmail.com) : Mai 17, 2008 - 04:46
(Informações sobre o membro | Enviar uma mensagem)
QUE TAL VC USAR ASSIM?

if RadioGroup3.ItemIndex = 0 then // Iniciado por
SQL.Clear;
SQL.Text := 'SELECT * FROM ASSOCIADOS WHERE ASS_NOME LIKE '+QuotedStr(UpperCase(selecao)+'%');
Execute;
else if RadioGroup3.ItemIndex = 1 then // Terminado por
SQL.Clear;
SQL.Text := 'SELECT * FROM ASSOCIADOS WHERE ASS_NOME LIKE '+QuotedStr('%'+UpperCase(selecao));
Execute;
else if RadioGroup3.ItemIndex = 2 then // todos
SQL.Clear;
SQL.Text := 'SELECT * FROM ASSOCIADOS';
Execute;
else if RadioGroup3.ItemIndex = 3 then // EXATAMENTE
SQL.Clear;
SQL.Text := 'SELECT * FROM ASSOCIADOS WHERE ASS_NOME = '+QuotedStr(UPPERCASE(SELECAO));
Execute;
else if RadioGroup3.ItemIndex = 4 then // QUE CONTENHA
SQL.Clear;
SQL.Text := 'SELECT * FROM ASSOCIADOS WHERE ASS_NOME LIKE '+QuotedStr('%'+UPPERCASE(SELECAO)+'%');
Execute;
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados