Pesquisas parametrizadas - consultas com SQL no delphi

Hallo! Today I will try explain how to made a simple SQL search using Delphi.
Well, let's go!

There is my database:
CREATE TABLE REGISTROS (
    CODIGO  INTEGER NOT NULL,
    TITULO  VARCHAR(50),
    TEXTO   VARCHAR(2000)
);

And come back to Portuguese :)

Novo projeto, VCL ... blá, blá, blá ... vamos fazer tudo num form mesmo, sem DataModule. Adicionamos os seguintes componentes:
TLabeleEdit - Teria o mesmo feito que um edit e depois um label, o legal é que o label fica já preso junto ao edit.
- TButton - Quando clicar nele é que a mágica vai ocorrer.
- TDBGrid - Vamos listar os dados aqui.

Bom, agora vem os que trabalham com os dados, aqueles que você costuma colocar em um DataModule.
- TSQLConnection - Nele vamos configurar a conexão com um banco de dados
- TSQLDataSet - um meio de campo ...
- TDataSetProvider - Outro meio de campo... esse cara que pega os dados do BD e arruma para serem exibidos nas estruturas do delphi.
- TClientDataSet - Essa é nossa principal estrutura, quando já temos os dados. Esse que "conversa" com os demais componentes que aparecem para o cliente (GUI).

Veja figura abaixo... e depois vamos configurando.



Dois cliques sobre o connection, vamos configurar a conexão, no meu caso com um  BD Firebird. Segue conexão. Depois dela dar certo, não esqueça de colocar o "loginPrompt" para false (na conexão).



Coloque o "connected" da conexão para true.


No SQLDataSet, ligue na propriedade SQLConnection a sua coenxão.
Ainda no SQLDataSet adicione a seguinte SQL na propriedade CommandText : select * from REGISTROS

Depois da SQL setada, sete o "active" do SQLDataSet para true.
Este está pronto.

No DataSetProvider sete a propriedade DataSet apontado para o SQLDataSet.Cuidado! Não para o ClientDataSet. Pronto.

No ClientDataSet, sete active para true.

Adicione ainda na tela um TDataSource, e ligue ele ao ClientDataSet na propriedade DataSet. Veja figura.



Legal! Agora última parte.. ligue a Grid na propriedade DataSource ao DataSource recem criado. Vai ficar como na figura a seguir.

Dando f9 (compilando e executando) a grid deve mostrar já os dados do banco. Aplicação já funcional. Só falta a pesquisa.







Seguimos ...
Agora é só adicionar o seguinte código no onclick do botão.

ClientDataSet1.Close;
SQLDataSet1.Close;

SQLDataSet1.CommandText:= 'select * from REGISTROS where TITULO like :p1 '
                          +'or TEXTO like :p2 ';
SQLDataSet1.Params[0].AsString := '%'+LabeledEdit1.Text+'%';
SQLDataSet1.Params[1].AsString := '%'+LabeledEdit1.Text+'%';

SQLDataSet1.Open;
ClientDataSet1.Open;

Auto-explicativo não?


Buenas! Agora é só de divertir!





have fun!
and nice weekend!


Download completo do BD + fontes + executável aqui.

2010-04-23 22:46:00
Este é o antigo Live Helton

Então, português é minha língua mãe, eu não tenho tanto a aprender quanto nos demais idiomas, assim este blog não discute aprendizado do idioma, e sim tópicos randômicos de interesse do dia a dia. Tecnologia, desenvolvimento, um pouco de reflexão crítica, enfim, uma bagunça bem como nossa mente é.
RSS Feed
"A vida é curta demais para ser pequena / The live is so short to be small / Das leben zu kurz sind für kleine sein". (Benjamin Disraeli)