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