Pessoal, o form de reconciliação de erro e somente para elucidar o
funcionamento de concorrencia no uso de ClientDataSet desconectados do
banco.
Em minhas aplicações funciona perfeitamente, pos o q faço e mapear a
exception de modificação de registro e aprsentar para o usuário o q esta no
banco e o q ele esta tentando alterar...e passo para a responsa dele decidir
o q fazer... é simples e funciona. Vc não precisa usar a tela de
reconciliação e acho ate q naum deveria.

Estou as ordens para o q for preciso.

[]´s
Bruno Lichot
Gerente de Novas Tecnologias - Micrologos
Equipe ClubeDelphi DevMedia

www.micrologos.com.br - www.clubedelphi.net -
www.delphirio.assespro-rj.org.br
----- Original Message -----
From: "Wenceslau Miranda" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Friday, March 18, 2005 12:58 AM
Subject: Re: Re: [delphi-br] Erro ReconcileError



Olá Thiago,

Fiz o que você me recomendou e estou tendo o seguinte problema, vou lhe
contar o que fiz passo a passo e o que aconteceu, talvez você possa me
ajudar:

1 - Abri duas instâncias de meu programa
2 - Coloquei ambas em modo de alteração no mesmo registro
3 - Fiz alterações diferente no nome do cliente em cada instância
4 - Confirmei a primeira e tudo ocorreu bem
5 - Confirmei a 2ª e me foi aberto a tela de reconciliação de erro;
6 - Marquei a opção de correção no Form de reconciliação, ou
sejateoricamente deveria assumir esse valor no banoc de dados
7 - Não deu erro nenhum, mas ao atualizar o banco (cds.open / close),
somente a primeira atualização foi efetuada
8 - Fechei uma das instãncias (a primeira a dar o update) e tentei alterar
novamente (lembre que agora não existe concorrencia e o cds está aberto)
9 - Novamente me abre o Form de conciliação e na mensagem de erro vem o
seguinte: Table unknown
clientes
At line 1, column 20.

Nem sei mais o que fazer, mesmo escolhendo a ação a executar como skip ou
correct me parece que sempre ocorre a cancel.

Se alguém teve problema semelhante ou tenha um exemplo funcionando com o
ReconcilieError por favor me ajude.



  ----- Original Message -----
  From: Francisco Thiago
  To: delphi-br@yahoogrupos.com.br
  Sent: Thursday, March 17, 2005 5:39 PM
  Subject: [Norton AntiSpam] Re: [delphi-br] Erro ReconcileError


  Primeiro: Com o ClientDataSet, você não controla a transação... Quem
  controla é ele mesmo. Se você está fazendo o controle transacional, está
  fazendo atoa.

  Segundo: Verifique como está a propriedade ProviderFlags dos campos do teu
  SQLDataSet. Verifique se a chave primária está marcada pfInKey. Se não
  estiver, marque. Para gerar os SQL de atualizações, o DataSetProvider se
  basea na configuração desta propriedade... Logo, pfInWhere, significa que
  aquele campo entrará no Where do update, por exemplo, e assim por diante.

  Terceiro: Adicione um formulário ReconcileError na sua aplicação e faça o
  tratamento deste evento. Esta é a única forma de saber se ouve algum erro.
  Outra forma alternativa, seria comparar o valor retornado pela
  ApplyUpdates.. se for diferente de zero, é que houve algum erro (acho que
é
  isso mesmo :D)

  Testa e depois fala para gente como ficou okay?

  Boa sorte

  Francisco Thiago de Almeida
  Enter&Plug Informática
  Divisão: Desenvolvimento e Banco de dados
  MSN: [EMAIL PROTECTED]
  Skype: enterplug_thiago

  ----- Original Message -----
  From: "Wenceslau Miranda" <[EMAIL PROTECTED]>
  To: <delphi-br@yahoogrupos.com.br>; <[EMAIL PROTECTED]>;
  <[EMAIL PROTECTED]>
  Sent: Thursday, March 17, 2005 5:28 PM
  Subject: [delphi-br] Erro ReconcileError



  Olá Pessoal,

  Estou tendo dificuldades para tratar acesso concorrente de dados (2
usuários
  alterando o mesmo registro).

  Estou utilizando D7+DBX+Firebird, e utilizo o conjunto
  SQLDataSet+DataSetProvider+ClientDataSet.
  O problema acontece se dois usuários estão visualizando um mesmo registro
  (pois os registros estão em cache devido o uso do CLIENTDATASET) e um
  usuário altera o registro e dá um ApplyUpdate e depois o outro usuário
  altera o registro e ao tentar dar o applyupdates está me retornando o
  seguinte erro:
  RECORD NOT FOUND OR CHANGED BY ANOTHER USER

  Então o registro não é alterado.

  Já tentei utilizar o ReconcileError mas não obtive sucesso. O problema é
que
  ele não gera a exceção do bloco TRY EXCEPT END, ele dá o commit
normalmente
  mesmo com a mensagem, mas não grava o registro.

  Por favor galera me ajudem que já não sei mais oq fazer.


  ---------------------------------
  Yahoo! Mail - Com 250MB de espaço.  Abra sua conta!

  [As partes desta mensagem que não continham texto foram removidas]



  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]

  Links do Yahoo! Grupos













  --
  <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

  Para ver as mensagens antigas, acesse:
  http://br.groups.yahoo.com/group/delphi-br/messages

  Para falar com o moderador, envie um e-mail para:
  [EMAIL PROTECTED] ou [EMAIL PROTECTED]



        Yahoo! Grupos, um serviço oferecido por:







----------------------------------------------------------------------------
--
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
Serviço do Yahoo!.



[As partes desta mensagem que não continham texto foram removidas]



--
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]

Links do Yahoo! Grupos












-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a