Curso de dbExpress e DataSnap - ParteXI
Veja o neste artigo de Guinther Pauli, mais um capítulo do curso sobre dbExpress e DataSnap.
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
Você pode fazer download de todos os exemplos deste curso a partir do endereço http://cc.borland.com/Author.aspx?ID=222668. É preciso fazer o cadastro na BDN, que é gratuito e pode ser feito a partir do endereço http://bdn.borland.com
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
Guinther Pauli.
Microsoft Certified Professional - MCP,MCAD,MCSD.NET,MCTS,MCPD (C#, ASP.NET, Arquitetura), MVP, Delphi Certified Professional, Colaborador Editorial Revistas .net Magazine e ClubeDelphi http://www.gpauli.com http://www.facebook.com/guintherpauli http://www.twitter.com/guintherpauli http://br.li...



