Artigo Clube Delphi Edição 14 - Usando o objeto TClientDataset

Vamos ver de uma forma simples e rápida de compreender o funcionamento dos componentes TClientDataset e TDataSetProvider, que são o cerne da nova tecnologia.

Esse artigo faz parte da revista Clube Delphi edição 14. Clique aqui para ler todos os artigos desta edição



Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML. 

Usando o objeto TClientDataset

Diga adeus ao CachedUpdates!

 

TClientDataSet é o personagem central da tecnologia de acesso a dados chamada  MIDAS (Multi-Tier Distributed Application Services). Sua utilização, no entanto não está diretamente ligada a implementação por completo de uma aplicação multicamadas. É importante observar que uma aplicação usando TClientDataset é fundamentalmente uma solução Client/Server e, por esse motivo, tem uma série de implicações que precisam ser observadas, muito mais conceitualmente do que “programaticamente”.

A principal justificativa para utilizar o TClientDataset em nossos projetos é poder desfrutar dos benefícios  de uma tecnologia altamente  sofisticada, que substitui com grandes vantagens o uso de CachedUpdates, em todas as situações.

Vamos ver de uma forma simples e rápida de compreender o funcionamento dos componentes TClientDataset e TDataSetProvider, que são o cerne da nova tecnologia. Neste primeiro artigo tratamos como os dois componentes podem ser usados em um mesmo projeto sem que a base remota seja implementada – e aqui cabe uma observação importante, necessitamos de uma licença MIDAS quando usamos TDataSetProvider e TClientDataSet para transmitir dados de uma máquina para outra, caso contrário - ($$$$). Para maiores detalhes, consulte o arquivo LICENSE.TXT  no diretório onde foi instalado o Delphi sobre ADDITIONAL LICENSE TERMS FOR DEPLOYNG MILTI-TIER PROGRAMS.

 

CLIENT/SERVER

 

A abordagem Cliente Servidor é diferente de uma abordagem Desktop, isso é óbvio, não precisava eu aqui escrever isso. O que por diversas vezes não fica claro é o quanto diferentes são esses dois mundos, o mundo TTable e o mundo TQuery.

O componente TTable já foi utilizado centenas de vezes por nós, o que devemos entender é por que o TTable em alguns momentos, o TQuery em outros. É extremamente comum nos grupos de “news” a pergunta: “O que é melhor usar: TTable ou TQuery?” O componente TClientDataSet pode receber dados de uma TTable ou de uma TQuery de forma não distinta, justamente porque ele não “vê” de onde os dados estão vindo, ele apenas se conecta a um TDataSetProvider e recebe os dados. Embora a coisa seja tão fácil quanto parece não é aconselhável que utilizemos uma TTable para esta finalidade,  pois ela não está preparada para uma  solução Client/Server que possa exigir uma criteriosa solicitação de dados.

 

 

 Quando programamos utilizando o estilo "clássico", assumimos que os dados que estão sempre a nossa disposição, a qualquer momento, na forma e quantidade que desejarmos. Na prática isso não é bem verdade, existem diversos fatores que afetam a forma como esses dados chegam até o usuário de seu sistema em uma estação de trabalho, fatores que normalmente são ignorados.

Cliente Servidor quer dizer o seguinte: de um lado temos uma estação, onde o seu programa vai estar "rodando". Esta ponta é chamada de "CLIENTE". Por que cliente? Porque a estação vai estar solicitando dados ao servidor, então ela tem um comportamento característico de um cliente." [...] continue lendo...

Artigos relacionados