Quick Tips: Locate no ClientDataSet

 

Nesta quick tip veremos como usarmos o locate no ClientDataSet

 

Insira dois edits, um botão, um DBGrid, um ClientDataSet e um DataSource no formulário conforme imagem abaixo:




Quando clicarmos no botão localizar, iremos verificar se o sobrenome foi preenchido ou não, caso tenha sido iremos buscar pelo nome e sobrenome, caso contrário, iremos localizar apenas pelo nome.

 

No click do botão, insira o seguinte código:

 

procedure TForm1.Button1Click(Sender: TObject);

begin

  //Se sobrenome não tiver sido informado

  if(edtSobreNome.Text = '')then

    CdsCliente.Locate('FIRST_NAME',edtNome.Text,[])

  else

  //Se sobre for informado, passamos dois campos para o locate

  //separando a lista de fields por ";" e passando os valores em forma de array

  //usando o método VarArrayOf

    CdsCliente.Locate('FIRST_NAME;LAST_NAME',VarArrayOf([edtNome.Text,edtSobreNome.Text]),[]);

end;

 

Fiquem a vontade para criticar, tirar dúvidas e sugerir novos temas.
Abraço.

Ricardo Coelho