[firebase-br] Foreign Key

Kléber Caneva kdcc em terra.com.br
Qua Abr 26 08:34:17 -03 2006


Pelo que entendi vc está usando uma estrutura Try.. Except para capturar o 
erro.

O problema é que o DBX não gera Exception, então teoricamente vc teria que 
tratar os erros do banco no OnReconcileError do CDS.

Mas como na pratica a teoria é outra, vc pode burlar esse problema em 
sistemas Client/Server :

1) Crie uma Variavel Publica
    ErrorMsg : string ;

2) Crie uma Rotina Padrao para o OnReconcileError que será usada em todos os 
CDS.

procedure TfrmPadrao.cdsReconcileError( DataSet: TCustomClientDataSet; E: 
EReconcileError;
  UpdateKind: TUpdateKind; var Action: TReconcileAction);
begin
  ErrorMsg := intToStr( e.ErrorCode ) + ' ' +  e.Message  + ' ' + E.Context 
;
  Action := raCancel;
end;

3) Quando efetuar o applyUpdates use assim:

  try
    if ( CDS.ApplyUpdates(0) <> 0 ) then
      Raise Exception.Create ( ErrorMsg ) ;
  except
    Application.HandleException(nil);
  end;


[]´s

Kléber Caneva

----- Original Message ----- 
From: "Maciel Soncini Bueno" <maciel em 2msolutions.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Tuesday, April 25, 2006 5:51 PM
Subject: [firebase-br] Foreign Key


Pessoal,

Tenho no meu banco de dados diversas Foregin Key.

No meus forms quando violo essas foregin keys por exemplo, numa rotina de
exclusão, o sistema aparentemente exclui ou seja não retorna nenhuma
mensagem ao usuário.

Quando retornamos ao FORM, o registro continua lá, como realmente deve
ocorrer.

O que me é estranho, é o fato da aplicação não retornar erro.

O que devo fazer para a aplicação retorne a mensagem de erro do banco, ou
para que eu possa retornar alguma mensagem para o usuário?

Utilizo DELPHI 7 e DBEXPRESS.

Maciel

--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.385 / Virus Database: 268.4.5/322 - Release Date: 22/04/2006


______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço 
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
Para consultar mensagens antigas: http://firebase.com.br/pesquisa

E-mail classificado pelo Identificador de Spam Inteligente Terra.
Para alterar a categoria classificada, visite
http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=kdcc&_l=1,1145998332.654677.26421.morondava.terra.com.br,3835,Des15,Des15

Esta mensagem foi verificada pelo E-mail Protegido Terra.
Scan engine: McAfee VirusScan / Atualizado em 25/04/2006 / Versão: 
4.4.00/4748
Proteja o seu e-mail Terra: http://mail.terra.com.br/








Mais detalhes sobre a lista de discussão lista