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:
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:
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
- Curso de dbExpress e DataSnap
- Curso de dbExpress e DataSnap - Parte II
- Curso de dbExpress e DataSnap - Parte III
- Curso de dbExpress e DataSnap - Parte IV
- Curso de dbExpress e DataSnap - Parte V
- Curso de dbExpress e DataSnap - Parte VI
- Curso de dbExpress e DataSnap - Parte VII
- Curso de dbExpress e DataSnap - Parte VIII
- Curso de dbExpress e DataSnap - Parte IX
- Curso de dbExpress e DataSnap - Parte X
- Curso de dbExpress e DataSnap - Parte XI
- Curso de dbExpress e DataSnap - Parte XII
- Curso de dbExpress e DataSnap - Parte XIII
- Curso de dbExpress e DataSnap - Parte XIV
- Curso de dbExpress e DataSnap - Parte XV
- Curso de dbExpress e DataSnap - Parte XVI
- Curso de dbExpress e DataSnap - Parte XVII
- Curso de dbExpress e DataSnap - Parte XVIII
- Curso de dbExpress e DataSnap - Parte XIX
- Curso de dbExpress e DataSnap - Parte XX
- Curso de dbExpress e DataSnap - Parte XXI
- Curso de dbExpress e DataSnap - Parte XXII
- Curso de dbExpress e DataSnap - Parte XXIII
- Curso de dbExpress e DataSnap - Parte XXIV
- Curso de dbExpress e DataSnap - Parte XXV
- Curso de dbExpress e DataSnap - Parte XXVI
- Curso de dbExpress e DataSnap - Parte XXVII
- Curso de dbExpress e DataSnap - Parte XXVIII
- Curso de dbExpress e DataSnap - Parte XXIX
- Curso de dbExpress e DataSnap - Parte XXX