PAGUE 6 MESES
LEVE 12 MESES
GARANTIR DESCONTO

Fórum Gerar uma mensagem para usuario quando aplicar o NO ACTION? #395597

12/02/2011

0

Pessoal, como faço para gerar uma mensagem para o usuario quando ele esta tentando apagar uma tabela que contem movimentações entre suas referencias Pai/Filho.

Ou seja deixei como NO ACTION na tabela filho FK  --- PK então ai não executa nenhuma ação.

Mais como mostrar pa ra o usuario uma mensagem que o filho não pode ser orfão ?

Obrigado.
Adriano Dolce

Adriano Dolce

Responder

Posts

12/02/2011

Adriano Dolce

Fiz assim,

CREATE OR ALTER TRIGGER EXEPT_CLIENTE_REF FOR CLIENTES
ACTIVE BEFORE DELETE POSITION 0
AS
begin
  if
   (
    Exists
          (
           SELECT c.nomeclie
           FROM clientes C, ordemserv O
           )
   )
  then
    Exception RESTRICAO 'Atenção! Exite movimentação para este Cliente.';
end


Mas não esta mostrando o exception para o usuario.


Responder

Gostei + 0

12/02/2011

Adriano Dolce

Pessoal, o que eu quero fazer é algo semelhante ao que fazemos no delphi

No delphi eu trataria assim

 {verifica se existe referencia nas tabelas antes de exetudar o delete}
      with qrylocal do
      begin
         close;
         SQL.Clear;
         SQL.Text := ' SELECT c.idclientes '+
           ' FROM clientes C '+
           ' INNER JOIN ordemserv O ON(c.idclientes = o.idclientes) '+
           ' WHERE c.idclientes = :codigo ';
         ParamByName('codigo').AsInteger := StrToInt(edtgen.Text);
         Open;
         if not IsEmpty then
         begin
           Pt_MessageDlg('Atenção! Exite movimentação para este Cliente.', mtError, [mbok],0);
           Exit;
         end;
      end;


Ja diretamente no banco de dados Firebird é que não estou conseguindo
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar