[Delphi] Tabela temporária com ClientDataSet – Final

Bom, hora de fechar o tema sobre tabelas temporárias no Delphi! Espero que nos dois primeiros artigos você tenha compreendido, de forma satisfatória, como trabalhar com tabelas temporárias utilizando ClientDataSet. Este último artigo apenas apresenta algumas observações relacionadas a tabelas temporárias que podem ser úteis durante o desenvolvimento.

Tabelas temporárias em runtime

Tabelas temporárias também podem ser criadas em tempo de execução, bem como a definição dos seus campos. Observe o exemplo abaixo, onde instancio um TClientDataSet e adiciono três campos de diferentes tipos de dados (integer, string e float):

E campos agregados também! Caso você não conheça, campos agregados servem para realizar cálculos em uma determinada coluna do ClientDataSet. No exemplo a seguir, criei um campo agregado para somar automaticamente o valor total de todos os itens da tabela.

Muitas vezes pode ser necessário “esvaziar” a tabela temporária, como por exemplo, no botão “Limpar” ou “Cancelar” de um formulário. Essa instrução pode ser realizada com apenas uma linha de código:

Barbada, não?

Explorando outros recursos da classe TClientDataSet

Além disso, tabelas temporárias também permitem a navegação entre os registros na memória utilizando os métodos tradicionais já conhecidos:

Outro recurso bastante interessante do ClientDataSet é o clone do conjunto de dados. Através do comando CloneCursor é possível copiar os dados de um ClientDataSet para outro, e então manipulá-los de maneira independente.

Agora, imagine que estamos utilizando uma tabela temporária para gravar itens de uma venda. Não é interessante que produtos repetidos sejam inseridos na tabela, concorda? Afinal, se o código do produto fizer parte da chave primária, ocorrerá um erro ao gravar os itens da venda. Para resolver isso, podemos utilizar a função Locate e controlar a inserção de itens repetidos:

Para filtrar os registros, não há segredo. No exemplo abaixo, tenho um componente do tipo TEdit chamado edtPesquisa, e permito o filtro da descrição de um registro na tabela temporária conforme o conteúdo digitado no campo:

Só lembrando que o símbolo de porcentagem permite que todos os registros que iniciem com a palavra digitada em edtPesquisa sejam encontrados. Por exemplo, se o usuário digitar a letra “A”, todas as descrições que começam com essa letra serão filtradas.

Mas atenção: não esqueça de desativar o filtro quando for necessário trabalhar com todos os registros da tabela temporária.

 

Bom, pessoal, espero que tenham gostado dessa série de artigos sobre tabelas temporárias, e que de alguma forma venha a ser útil pra vocês! Boa sorte no trabalho e até breve!


Confira os outros artigos:

Tabela temporária com ClientDataSet – Conceito
Tabela temporária com ClientDataSet – Prática
Tabela temporária com ClientDataSet – Final


 

André Celestino