Curso de dbExpress e DataSnap

Parte XI – Data vs. Delta

 

Este exemplo apresenta o uso das propriedades Data e Delta do ClientDataSet. Data é um OLEVariant que armazena a cache de dados, Delta é um OLEVariant que armazena as ALTERAÇÕES feitas em um ClientDataSet.

Inicie uma nova aplicação Delphi VCL e coloque no formulário principal coloque um Button, dois ClientDataSets, dois DataSource2, dois DBGridse um DBNavigator, fazendo as ligações como mostrado abaixo:

 

object ClientDataSet1: TClientDataSet

end

 

object DataSource1: TDataSource

  DataSet = ClientDataSet1

end

 

object DBGrid1: TDBGrid

  DataSource = DataSource1

end

 

object ClientDataSet2: TClientDataSet

end

 

object DataSource2: TDataSource

  DataSet = ClientDataSet2

end

 

object DBGrid2: TDBGrid

  DataSource = DataSource2

end

 

object DBNavigator1: TDBNavigator

  DataSource = DataSource1

end

 

Dê um clique de direita no ClientDataSet, escolha Load from MyBase Table e abra o arquivo Customer.XML, localizado nos demos do Delphi, por padrão no diretório:

 

C:\Arquivos de programas\Arquivos comuns\Borland Shared\Data

 

Seu formulário deve estar semelhante ao mostrado a seguir:

Archive11_1.gif 

Figura 1.

No evento OnClick do botão capturamos o Delta do primeiro CDS e jogamos como Data do segundo CDS:

 

procedure TFrmMain.BitBtn1Click(Sender: TObject);

begin

  if  ClientDataSet1.ChangeCount > 0 then

    ClientDataSet2.Data := ClientDataSet1.Delta;

end;

 

Execute a aplicação. Faça algumas modificações no primeiro DBGrid e observe que, ao clicar no botão, essas alterações são registradas no segundo DBGrid:

Archive11_2.gif 

Figura 2.

No exemplo anterior, modifiquei o campo Company de um registro. O CDS mantém os valores originais em Delta para serem utilizados no processo de Resolving do DataSetProvider, quando os campos precisam ser processados em instruções SQL de atualização.

 

Download

 

dbExpress, DataSnap e ClientDataSet: Técnicas Avançadas

Para mais informações sobre acesso a dados no Delphi e técnicas avançadas, sugiro a leitura do meu livro, “Delphi: Programação para Banco de Dados e Web”, como apoio para o aprendizado das tecnologias. Na obra mostro várias técnicas introdutórios e avançadas de desenvolvimento com ClientDataSet, dbExpress e DataSnap (multicamadas, incluindo SOAP e COM+). Para mais informações, consulte o link http://www.clubedelphi.net/guinther

 

Leia todos artigos da série