Obrigado por visitar a devmedia.com.br!

Precisamos de você para divulgar nossos vídeos e cursos gratuitos para a comunidade.

Se você gosta da devmedia.com.br por favor dê-nos o seu clique para o Google+ e ajude outros desenvolvedores ao redor do mundo.



Obrigado por seu apoio!
Equipe DevMedia

sair sem compartilhar (x)
DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:

Pesquisa String ou Integer: Delphi

Veja nesta quick como pesquisar por campo String ou Integer

 

Neste artigo estarei demonstrando como se fazer pesquisa no Delphi usando o componente ClientDataSet, eu criei um banco de dados e uma tabela chamada Pessoa que nos servirá de demonstração.

 

Tabela Pessoa

IDPESSOA

INTEGER

NOME

VARCHAR(30)

ENDERECO

VARCHAR(45)

BAIRRO

VARCHAR(25)

CIDADE

VARCHAR(25)

TELEFONE

VARCHAR(10)

SALARIO

NUNERIC(10,2)

DATACADASTRO

DATE

 

 

            Crie uma nova Aplicação e uma nova conexão e adicione em nosso formulário os seguintes componentes e altere-os como descreve os quadro abaixo:

 

SqlDataSet

Name

sdsPesquisa

SqlConnection

O nome da sua conexão

CommandText

select

BAIRRO,

CIDADE,

DATACADASTRO,

ENDERECO,

IDPESSOA,

NOME,

SALARIO,

TELEFONE from PESSOA

WHERE IDPESSOA =:pIDPESSOA

 

Onde temos WHERE IDPESSOA =:pIDPESSOA, estou passando o paramento através da variável pIDPESSOA            para alimentar nossa claususula WHERE.

 

DataSetProvider

Name

dspPesquisa

DataSet

sdsPesquisa

 

ClientDataSet

Name

cdsPesquisa

ProviderName

dspPesquisa

 

DataSource

Name

dtsPesquisa

DataSet

cdsPesquisa

 

E por fim um DbGrid, mude a propriedade name para dbgPesquisa e a DataSource para dtsPesquisa. Adicione também um Edit e no evento OnKeyPress coloque o seguinte código:

 

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

1  if key = #13 then

2 begin

3    With cdsPesquisa do

 4  begin

 5   close;

 6     FetchParams;

 7     Params.ParamByName('pIDPESSOA').AsInteger:=StrToInt(Edit1.Text);

 8    Open;

    end;

  end;

end;

 

Linha 1: Se a tecla for o Enter faça, #13 é a representação da tecla Enter.

Linha 3: Com o cdsPesquisa faça.

Linha 5: Fechamos o ClientDataSet cdsPesquisa, para receber o parâmetro.

Linha 6: Passamos o parâmetro pIDPESSOA.

Linha 7: Alimenta o parâmetro pIDPESSOA.

Linha 8: Abrimos o ClientDataSet..

 

Campo String

Vamos aprender agora como pesquisar por campo string, é muito simples, vamos modificar o nosso SQL, deixe-o como descrito a seguir:

 

SqlDataSet

Name

sdsPesquisa

SqlConnection

O nome da sua conexão

CommandText

select

BAIRRO,

CIDADE,

DATACADASTRO,

ENDERECO,

IDPESSOA,

NOME,

SALARIO,

TELEFONE from PESSOA

WHERE NOME :pNOME

 

A única diferença a clausula Where, trocamos a compo IDPESSOA por NOME e retirei o singal de (=) afinal queremos passar o parâmetro.

 

Retorne ao evento OnkeyPress do Edit e modifique o código deixando igual ao descrito a seguir:

 

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

1  if key = #13 then

2 begin

3    With cdsPesquisa do

 4  begin

 5   close;

 6     FetchParams;

 7     Params.ParamByName('pNOME').AsString:=Edit1.Text+’%’;

 8    Open;

    end;

  end;

end;

 

Só mudei a linha 7 para alterarmos o nome do parâmetro, e não convertermos em integer, afinal o campo edit já é string.

 

 

LIKE: Com este operador, podemos comparar cadeias de caracteres utilizando padrões de comparação (Wildcard) para um ou mais caracteres. Normalmente o caracter percentual (%) substitui zero, um ou mais caracteres e sublinha (_) substitui um caractere.

            Utilizando a combinação desses caracteres especiais com o que se quer localizar, pode-se conseguir uma variedade muito grande de expressões. Veja na tabela abaixo:

 

Expressão

Explicação

LIKE ‘A%’

Todas as Palavras

LIKE ‘%A’

Todas que terminem com a letra A

LIKE ‘%A%’

Todas que tenham a letra A em qualquer posição

LIKE ‘A_’

String de dois caracteres que tenham a primeira letra A e o segundo caractere seja qualquer outro.

LIKE ‘_A’

String de sois caracteres cujo primeiro caractere seja qualquer um e a última letra seja A

LIKE ‘_A_’

String de três caracteres cuja segunda letra seja A, independentemente do primeiro ou do último caractere.

LIKE ‘%A_’

Todos que tenham a letra A na penúltima posição e a última seja qualquer outro caractere

LIKE ‘_A%’

Todos que tenham a letra A na segunda posição e o primeiro caractere seja qualquer um.

 

CONTAINING: Este operador tem a mesma função do LIKE, com a diferença que ele não difere se maiúsculo ou minúsculo, ele também busca em qualquer parte do nome ou seja se você digitar João ele trará João Carlos, Carlos João, Roberto João da Silva e etc.

 

Exemplo

select

BAIRRO,

CIDADE,

DATACADASTRO,

ENDERECO,

IDPESSOA,

NOME,

SALARIO,

TELEFONE from PESSOA

WHERE NOME Containing :pNOME

 

Fico por aqui, até o próximo arigo.

 

 

Rubens Antunes

Autor do Livro: Delphi – Faça Uma Aplicação Comercial





    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Autor
Rubens Antunes

Programador Delphi desde de 2004 e Autor do Livro Delphi - Faça Uma Aplicação Comercial


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]
Este post está disponível somente para quem possui Créditos DevMedia. (Ele não está associado a nenhuma publicação DevMedia).


  Conheça os planos de créditos DevMedia e visualize esse post agora mesmo!

Plano conveniência – Neste plano este post custa R$ 0,00 (Compre agora)
Esse plano permite que você compre somente um post, pagando por ele seu preço sem desconto.

Plano ocasional: Aqui este post custa: R$ -1,00 (assinante) ou R$ -1,00 (não-assinante)
Este plano é ideal para quem tem interesse em mais de um post. Você compra um mínimo de R$ 50,00 em créditos e ganha, em média, 50% de desconto no preço do post. Compre Créditos agora!

Assinatura de Créditos (Plano econômico) – Aqui este post custa R$ -1,00
Este plano é ideal para quem tem interesse em muitos posts. Com esse plano você compra R$ 180,00 em créditos e ganha, em média, 80% de desconto no preço do post. Assine este plano agora!

> Saiba mais sobre o Sistema de Créditos DevMedia
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03