Olha, então vc pode mudar o código para o seguinte:
if Cds1.ApplyUpdate(0) <> 0 then Abort; else if Cds2.ApplyUpdates(0) <> 0 then Abort; else if... Daí ele não vai executar os código seguintes. O erro que acontece depois (o de chave não especificada) é pq no seu SQLDataSet você não especificou qual o campo que é chave primária. Você precisa adicionar os TFields no SQLDataSet e acertar a propriedade ProviderFlags, especificando pelo menos qual dos campos é a PK (pfInKey). Assim ele gera o SQL para Refresh correto. Espero ter ajudado Francisco Thiago de Almeida Enter&Plug Informática Divisão: Desenvolvimento e Banco de dados MSN: [EMAIL PROTECTED] Skype: enterplug_thiago ----- Original Message ----- From: "Alisson" <[EMAIL PROTECTED]> To: <delphi-br@yahoogrupos.com.br> Sent: Friday, June 03, 2005 4:01 PM Subject: Re: [delphi-br] try..except não funciona com DBExpress(?) > 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 > > > > > > > > > ____________________________________________________ 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