Quick Tips : Filter e Locate no ClientDataSet

Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Para efetuar o download você precisa estar logado. Clique aqui para efetuar o login
Confirmar voto
0
 (0)  (0)

Nesta Quick veja como usar o Filter e Locate do ClientDataSet.

Olá galera, nesta Quick Tips irei mostrar como usar dois recursos que temos no ClientDataSet para localizar e Filtrar registros no mesmo:

 

Vamos a construção do Exemplo :

 

Adicione :              

1 ClientDataset, CDSPadrao ( Construí um XML, porém nada lhe impede de usar uma base própria )

1 DataSource, DSPadrao

1 DBGrid

1 DBNavigator

1, Edit EdtConteudo

1 BitBtn, BtnLocalizar

1 CheckBox, CbxFiltrar




BtnLocalizar

 

procedure TFrmPrincipal.BtnLocalizarClick(Sender: TObject);

begin

  if CDSPadrao.Locate('Nome',EdtConteudo.Text,[loCaseInsensitive,loPartialKey]) then

  begin

    ShowMessage('Registro encontrado ' + #13 +

                'Codigo : ' + CDSPadraoID.AsString + #13 +

                'Nome   : ' + CDSPadraoNome.AsString);

  end

  else

  begin

    ShowMessage('Registro não encontrado!!!!');

    EdtConteudo.Clear;

    EdtConteudo.SetFocus;

  end;

end;

 

CbxFiltrar : onClick

 

procedure TFrmPrincipal.CbxFiltrarClick(Sender: TObject);

begin

  if TCheckBox(Sender).Checked then//Usando Cast onde sei que o Objeto Sender é um TCheckBox,                                                                                                        //para verificar se o mesmo esta marcado

  begin

    with CDSPadrao do

    begin

      Close;

      Filtered := False;

      Filter := 'UPPER(Nome) Like ' +UpperCase(QuotedStr('%' + EdtConteudo.Text + '%'));    

//Funciona como uma Clausula Where do SQL

      Filtered := True;

     Open;

    end;

  end

  else

  begin

    CDSPadrao.Filtered := False;

    EdtConteudo.Clear;

    EdtConteudo.SetFocus;

  end;

end;

 

O ClientDataSet, é um dos componentes mais poderosos que temos no Delphi, com eles trabalhamos em memória e usando o Filter e Locate, recuperarmos dados muitos mais rápidos do que se fizéssemos uma Query para representar estas funções que encontramos nele, pois como falei os dados estão na memória.

 

Fico por aqui e até a próxima Quick Tips.

 

Um abraço

 

Wesley Y

wyamazack@rwsolution.com.br

 

 
Você precisa estar logado para dar um feedback. Clique aqui para efetuar o login
Receba nossas novidades
Ficou com alguma dúvida?