Faltou o cabeçalho do gatilho: é inclusão, exclusão ou atualização?

Um abraço,

Valdir Marcos

  ----- Original Message ----- 
  From: Levi Ribeiro de Freitas 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Tuesday, October 18, 2005 11:06 AM
  Subject: [delphi-br] Recuperar Banco Firebird


  Pessoal,

  Alguém tem alguma ferramenta para recuperar um banco firebird, acredito que
  o meu está com problema, visto que uma trigger está falhando.
  As vezes executa, as vezes não.

  Vejam o código:
  AS
  DECLARE VARIABLE FILLER VARCHAR (2) CHARACTER SET WIN1252;
  DECLARE VARIABLE FILLER1 VARCHAR (30) CHARACTER SET WIN1252;

  BEGIN

  FILLER = ' ';

  //Esta parte aqui não executa de jeito nenhum, verifica estas condicoes de
  jeito nenhum
  if ((new.situacao = 2 and old.situacao = 2) and (New.DT_NF <> Old.DT_NF) or
  (New.Peso_NF <> Old.Peso_NF) or (New.Valor_NF <> Old.Valor_NF) or
  (New.num_nf <> Old.num_nf)) then
     begin
     FILLER1 = 'MATERIAL DEVOLVIDO';
     INSERT INTO tbemail (ID_TIPO, INFORMACAO, DOCUMENTO_CHAR,
     TEXTO, DESCRICAO, USR_CAD,
     DT_CAD, DESCRICAO1, DESCRICAO2, STATUS)
     VALUES(11, 'RAT - ' || :FILLER1 || ' - ' || cast(New.peso_nf as
  varchar(8)) || 'KG' , SUBSTRING( NEW.codigo FROM 1 FOR 4) || '/' ||
  SUBSTRING( NEW.codigo FROM 5 FOR 2),
     NEW.tipo_id || :FILLER || New.cod_cli || :FILLER || New.cliente,
     NEW.desc_reclama, NEW.usr_ed, NEW.dt_ed, New.laudo, New.disposicao, 0);
     end
  //Até aqui.

  //Daqui pra frente executa normalmente.

  if (new.situacao = 1 and old.situacao = 1 and ((New.cod_cli <> Old.cod_cli)
  or (New.desc_reclama <> Old.desc_reclama))) then
     begin
     INSERT INTO tbemail (ID_TIPO, INFORMACAO, DOCUMENTO_CHAR,
     TEXTO, DESCRICAO, USR_CAD,
     DT_CAD, STATUS)
     VALUES(1, 'ALTERAÇÃO DE SAT', SUBSTRING( NEW.codigo FROM 1 FOR 4) || '/'
  || SUBSTRING( NEW.codigo FROM 5 FOR 2),
     NEW.tipo_id || :FILLER || New.cod_cli || :FILLER || New.cliente,
     NEW.desc_reclama, NEW.usr_ed, NEW.dt_ed, 0);
     end

  if (new.situacao = 2 and old.situacao = 1) then
     begin
     if (new.procedente = 1) then
        begin
        FILLER1 = 'PROCEDENTE';
        INSERT INTO tbemail (ID_TIPO, INFORMACAO, DOCUMENTO_CHAR,
        TEXTO, DESCRICAO, USR_CAD,
        DT_CAD, DESCRICAO1, DESCRICAO2, STATUS)
        VALUES(2, 'INCLUSÃO DE RAT - ' || :FILLER1 , SUBSTRING( NEW.codigo
  FROM 1 FOR 4) || '/' || SUBSTRING( NEW.codigo FROM 5 FOR 2),
        NEW.tipo_id || :FILLER || New.cod_cli || :FILLER || New.cliente,
        NEW.desc_reclama, NEW.usr_ed, NEW.dt_ed, New.laudo, New.disposicao,
  0);
        end
     if (new.procedente = 2) then
        begin
        FILLER1 = 'IMPROCEDENTE';
        INSERT INTO tbemail (ID_TIPO, INFORMACAO, DOCUMENTO_CHAR,
        TEXTO, DESCRICAO, USR_CAD,
        DT_CAD, DESCRICAO1, DESCRICAO2, STATUS)
        VALUES(3, 'INCLUSÃO DE RAT - ' || :FILLER1 , SUBSTRING( NEW.codigo
  FROM 1 FOR 4) || '/' || SUBSTRING( NEW.codigo FROM 5 FOR 2),
        NEW.tipo_id || :FILLER || New.cod_cli || :FILLER || New.cliente,
        NEW.desc_reclama, NEW.usr_ed, NEW.dt_ed, New.laudo, New.disposicao,
  0);
        end
     end

  if ((new.situacao = 2 and old.situacao = 2) and (New.laudo <> Old.laudo) or
  (New.disposicao <> Old.disposicao) or (New.procedente <> Old.procedente) or
  (New.devolucao <> Old.devolucao)) then
     begin
     if (new.procedente = 1) then
        begin
        FILLER1 = 'PROCEDENTE';
        INSERT INTO tbemail (ID_TIPO, INFORMACAO, DOCUMENTO_CHAR,
        TEXTO, DESCRICAO, USR_CAD,
        DT_CAD, DESCRICAO1, DESCRICAO2, STATUS)
        VALUES(2, 'ALTERAÇÃO DE RAT - ' || :FILLER1 , SUBSTRING( NEW.codigo
  FROM 1 FOR 4) || '/' || SUBSTRING( NEW.codigo FROM 5 FOR 2),
        NEW.tipo_id || :FILLER || New.cod_cli || :FILLER || New.cliente,
        NEW.desc_reclama, NEW.usr_ed, NEW.dt_ed, New.laudo, New.disposicao,
  0);
        end
     if (new.procedente = 2) then
        begin
        FILLER1 = 'IMPROCEDENTE';
        INSERT INTO tbemail (ID_TIPO, INFORMACAO, DOCUMENTO_CHAR,
        TEXTO, DESCRICAO, USR_CAD,
        DT_CAD, DESCRICAO1, DESCRICAO2, STATUS)
        VALUES(3, 'ALTERAÇÃO DE RAT - ' || :FILLER1 , SUBSTRING( NEW.codigo
  FROM 1 FOR 4) || '/' || SUBSTRING( NEW.codigo FROM 5 FOR 2),
        NEW.tipo_id || :FILLER || New.cod_cli || :FILLER || New.cliente,
        NEW.desc_reclama, NEW.usr_ed, NEW.dt_ed, New.laudo, New.disposicao,
  0);
        end
     end

  END

  Atenciosamente,

  Levi Ribeiro de Freitas
  Programador de Computadores
  Tel.: 55 12 3644-2119 / 9724-8804
  Email:  <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED]


  [As partes desta mensagem que não continham texto foram removidas]



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



        Yahoo! Grupos, um serviço oferecido por: 
          


------------------------------------------------------------------------------
  Links do Yahoo! Grupos

    a.. Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/
      
    b.. Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]
      
    c.. O uso que você faz do Yahoo! Grupos está sujeito aos Termos do Serviço 
do Yahoo!. 



[As partes desta mensagem que não continham texto foram removidas]





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