como usar os exceptions do firebird

Firebird

19/09/2005

Criei os exceptions no FB, agora como eu uso eles no delphi amigos? podem postar o codigo por favor?

Outra coisa, alguem tem UDF pra CNPJ e CPF?

obrigado!


Njuniorba

Njuniorba

Curtidas 0

Respostas

Marcelo.l

Marcelo.l

19/09/2005

Olá,


Vc deve ter alguma trigger do tipo :

CREATE TRIGGER CLIENTE_BI FOR CLIENTE
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN  
      if (exists
      (select RG from CLIENTE
      where (RG = NEW.RG))
      ) then exception RG_CLIENTE_JA_EXISTE;
END


agora no evento ´OnReconcileError´ do ClientDataset faça algo do tipo :

procedure TClienteFrm.CDS_ClienteReconcileError(
   DataSet: TCustomClientDataSet; E: EReconcileError;
   UpdateKind: TUpdateKind; var Action: TReconcileAction);
const
   ErRG_Exist = ´RG_CLIENTE_JA_EXISTE´;
   RG_Mensagem = ´O R.G. de número "¬s" já está cadastrado para outro cliente!!!´;
begin
   if pos(ErRG_Exist, E.message) > 0 then
   begin
      NewMessageDlg(Format(RG_Mensagem, [CDS_ClienteRG.AsString]), mtInformation, [mbOk], 0);
      Action := raAbort;
   end;
end;



Ao ocorrer o exception no servidor, este irá retornar ao dataset.


Quanto a validação de CNPJ E CPF sugiro que faça no lado cliente para evitar trafego desnecessário na rede.
Assim caso o usuario desista de gravar um registro com CNPJ ou CPF inválido nada terá passado pela rede e o servidor terá um trabalho a menos para fazer.


T+


GOSTEI 0
Afarias

Afarias

19/09/2005

|Criei os exceptions no FB, agora como eu uso eles no delphi amigos?
|podem postar o codigo por favor?

try
  {execute algum stored proc}
except
  { trate a exceção q vem do fb }
end;



T+


GOSTEI 0
POSTAR