|
Usuários |
|
36 Usuários Online
|
|
[Artigos]
Como buscar uma pessoa numa tabela pelo sobrenome |
Publicado por TiagoJMilam : Quarta, Setembro 01, 2004 - 11:39 GMT-3 (7800 leituras)
5 Comentários Enviar para um amigo Versão para impressão
|
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 pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos. |
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 |
|
|
50 Programas Fontes |
|
|
Produtos |
|
|