Pessoal: a) Estou usando Delphi 7 com DBExpress/ClientDataSet e InterBase 6
b) No evento OnReconcileError de um ClientDataSet, eu verifico qual foi a mensagem de erro: - Se foi violacao de chave, quero executar um raAbort - Se foi pelo fato de outro usuario na rede ter alterado o registro, quero reler o registro alterado do servidor de dados (para que o usuario que recebeu o erro veja em sua tela o registro atual do BD) c) Pelo que entendi do help do Delphi, para trazer novamente o registro do servidor, tenho que executar o comando Action := raRefresh d) Porem, quando o programa faz um Action := raRefresh, ele entra em loop (fica entrando sempre no OnReconcileError, e o usuario tem de pressionar CTRL+ALT+DEL para abortar o programa) Poderiam analisar o codigo no final deste e-mail e me dizer o que esta' errado ? Obsservacoes: 1) O ApplyUpdates(0) eu executo no evento AfterPost do ClientDataSet 2) No OnReconcileError, ja' tentei fazer um .close e .open no ClientDataSet, mas entao aparece um outro erro, referente ao "provedor" (ate' esqueci qual e') Muito obrigado pela atencao de todos Paulo procedure TFormCadMatServicos.ClientDataSetTBMATSERVICOSReconcileError(DataSet: TCustomClientDataSet; E: EReconcileError; UpdateKind: TUpdateKind; var Action: TReconcileAction); var sMensagem : String; begin if Pos('PRIMARY OR UNIQUE KEY', AnsiUpperCase(E.Message)) > 0 then begin sMensagem := 'Registro já cadastrado.'; Action := raAbort; end else if Pos('REGISTRO FOI ALTERADO POR OUTRO USUÁRIO', AnsiUpperCase(E.Message)) > 0 then begin sMensagem := 'Este registro foi alterado por outro usuário.'; Action := raRefresh; end else begin sMensagem := 'Algum erro inesperado ocorreu.'; Action := raAbort; end; MessageDlg(sMensagem, mtError, [mbOK], 0); end; [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] 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