DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!

Artigo Clube Delphi Edição 16 - TclienteDataset – Parte III

Artigo da Revista Clube Delphi Edição 16.

[fechar]

Você não gostou da qualidade deste conteúdo?

(opcional) Você gostaria de comentar o que não lhe agradou?

Esse artigo faz parte da revista Clube Delphi edição 16. 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. 

 

TclienteDataset – Parte III

Tratanto erros no ambiente Cliente-Servidor

 

Um aspecto que devemos observar, e que é muito importante em todos os projetos que envolvam uma base de dados é a confiabilidade desses dados, ou seja. Até que ponto as opeações executadas na base são seguras e perfeitas.

Para garantir esse ponto, nós, desenvolvedores do mundo Ttable, observamos um cuidado básico que garante nossa sobrevivência: verificar se o registro que vamos editar já não esta sendo editado por outro usuário. Este cuidado existe em toda aplicação que algum dia venha a escrever alguma coisa em uma base de dados.. tudo perfeito, não fosse um pequeno detalhe: não funciona mais! Antes que o desespero tome conta, saiba que outros desenvolvedores já passaram por isso e sobreviveram. Como? Utilizando o conceito Client/Server.

Quando trabalhamos com Ttable, temos a base na mão, é fácil contorlar um registro “setando” seu estado para “em edição”. Pronto, somos os senhores da situação; quando trabalhamos com TclientDataset, e por tabela, com a tecnologia Client/Servidor, não sabemos nem onde está a base e, o que é pior, o mundo pode acabar entre o momento em que o usuário iniciou uma edição até o instante que ele resolve que gostaria gravar o seu trabalho. Sendo assim, fundamentalmente o nosso problema é: não existe como bloquear o registro!

Em Client/Server a base semrpe está disponível. Assim não podemos mais contar com a sorte, achando que ninguém vai alterar alguma informção enquanto estivermos trabalhando dados de um registro. As situações possíveis são:

  1. o registro não sofreu mudanças desde o momento em que foi feita a última leitura destes dados. Este é o melhor caso, gravamos as alterações feitas e pronto!
  2. o registro que está sendo editado sofreu alguma alteração desde o momento que foi feita a última leitura dos dados. Complicado para dizer o mínimo... temos que dicidir o que fazer: abortar, marge, gravar sobescrevendo, enfim são muitas as opções.
  3. o registro não existe mais, foi apagado por outro usuário. Podemos abortar (já que não existe mais um regristro para ser alterado) ou gravar tudo.

 

A isto damos o irônico nome de reconciliação. Bem, acho que não poderia ser diferente

 

A reconciliação

Deixando à parte qualquer vocação para casamenteiro, temos primeiramente que esmiuçar o que o Handle do evento OnReconcileError nos oferece...

 

 

Onde:

·         "

A exibição deste artigo foi interrompida.

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da ClubeDelphi DIGITAL
ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Damácio Martins
Diretor da MRW – Management Resources Workgroup. Desenvolve em Delphi, ASP PHP e Java, especialmente aplicações para Internet e comunicação de dados.
O que você achou deste post?

    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!
Cursos relacionados
Publicidade
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03