Artigo Clube Delphi Edição 51 - DataSetProvider Avançado
Artigo da Revista Clube Delphi Edição 51.
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.
DataSetProvider Avançado
Armazene em log todas as alterações feitas no banco de dados
Neste artigo veremos como utilizar alguns recursos avançados do DataSetProvider e do ClientDataSet para fazer log de todas as atualizações enviadas ao banco de dados. A partir desses logs, você poderá, por exemplo, identificar e recuperar registros excluídos ou modificados de forma indevida por um usuário do sistema.
O que faremos basicamente será salvar todos os DataPackets de atualização (os chamados Deltas) em arquivos no disco, juntamente com informações sobre o usuário, data/hora, tabela atualizada etc. Essa abordagem é bastante flexível: você poderá adaptar a solução à qualquer aplicação (desde que faça uso de
ClientDataSets e DataSetProviders), independente do banco de dados que esteja utilizando.
Construindo a aplicação de exemplo
Crie uma nova aplicação no Delphi e adicione um DataModule ao projeto (chame-o de "DM"). Acredito que o leitor já está familiarizado com a criação de aplicações de banco de dados usando dbExpress, de forma que não entrarei em detalhes sobre a configuração dos componentes. Caso você nunca tenha feito uma conexão dbExpress, poderá ler um artigo introdutório que colocamos no portal do assinante (www.clubedelphi.com.br/portal).
Veja na Figura 1 os componentes utilizados e formulário principal da aplicação com os controles Data-Aware. Aqui estou acessando o banco de dados Employee.gdb dos demos do Interbase. O SQLQuery obtém dados da tabela Customer e tem a seguinte instrução SQL: "select CUST_NO,CU5TOMER,CITY from CUSTOMER”. Veja a seguir o código colocado no evento OnClick do botão Aplicar:
procedure TForrn1.Button1lClick(Sender: TObject);
begin
{Declare DBClient no uses}
(DataSource1.DataSet as
TClientDataSet).ApplyUpdates(O);
end:
Figura 1.Formulário principal da aplicação e DataModule
Antes de continuarmos o exemplo, é importante lembrar como funciona o tratamento de DataPackets feito pelo DataSetProvider.
DataSetProvider e DataPackets"
[...] continue lendo...Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo