Francisco e demais colegas,

Na verdade eu estou aplicando update de vários ClientDataSet's, então estou 
fazendo como a própria ajuda recomenda: starto a transação, dentro de um 
bloco protegido e aplico os updates de todos e salvo (commit), caso ocorra 
algum erro em um dos CDS's é preciso reverter (rollback).

O erro que eu estou forçando em um dos CDS's é um erro de check constraint 
no BD (Firebird, esqueci de mencionar antes), onde incluo um registro com 
valor de um dos campos menor que o permitido, então acredito que o 
OnReconcileError não vai tratar, não sei... se não me engano são tratados 
erros de concorrência de registro, não é mesmo?

Mas de qq forma, o problema é que está sendo lançada uma exceção do tipo 
EDatabaseError mas não está indo para o except...

A propósito, rodado pelo Delphi é exibida uma exceção com a mensagem que 
violou uma check constraint e, em seguida, quando aperto F9 novamente, é 
exibida outra exceção EDatabaseError dizendo que não consegui encontrar o 
registro, pois não foi informada a chave primária... não sei o que pode ser. 
Mas o que acontece é que, mesmo após as exceções os comandos seguintes são 
executados, quando o flúxo deveria ser mudado para o except.

Não sei se consegui ser claro, mas se for o caso eu vou fazer um test case 
ou até montar um exemplo simples para vcs verem o problema.

Obrigado a todos!

Alisson

----- Original Message ----- 
From: "Francisco Thiago" <[EMAIL PROTECTED]>
To: <delphi-br@yahoogrupos.com.br>
Sent: Friday, June 03, 2005 12:35 PM
Subject: Re: [delphi-br] try..except não funciona com DBExpress(?)


> Seguinte:
>
> Nunca use ApplyUpdate(-1) pq assim ele vai deixar passar todos os erros.
> Faça um ApplyUpdate(0) que a cada erro ele vai chamar o OnReconcileError.
>
> Se você quiser simplesmente jogar uma execeção para o usuario faça:
>
> on e: Exception do
>  raise Exception.Create(e.message)
> .. no evento OnReconcileError do CDS.
>
> Ou se preferir, utilize o diálogo de OnReconcileError do Delphi. Ele tem 
> um
> metodo que basta chamar ele e o diálogo trata o erro com interface pro
> usuário. Procure na internet que você vai conseguir maiores detalhes
>
>
> Espero ter ajudado
>
>
> Francisco Thiago de Almeida
> Enter&Plug Informática
> Divisão: Desenvolvimento e Banco de dados
> MSN: [EMAIL PROTECTED]
> Skype: enterplug_thiago
>
>
>
>
>
>
> ____________________________________________________
> Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! 
> http://mail.yahoo.com.br
>
>
> -- 
> <<<<< 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
>
>
>
>
>
>
> 


        
        
                
____________________________________________________
Yahoo! Mail, cada vez melhor: agora com 1GB de espaço grátis! 
http://mail.yahoo.com.br


-- 
<<<<< 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