Redundâncias

Este forum é dedicado a códigos errados que se encontram por aí, ou seja, coisas que não se deve fazer de jeito nenhum! Não coloque neste forum dúvidas! (apenas situações bizarras do nosso dia a dia :-)
  

Mensagemem Qui, 24 Jan 2008 8:59 am

Pra quê testar se o foco do mouse está no item B07.CARG_CD_CARGO se é o próprio item que dispara esta trigger (WHEN-VALIDATE-ITEM) ?!?!?

Código: Selecionar todos
IF :SYSTEM.CURSOR_FIELD = 'B07.CARG_CD_CARGO' THEN

   :b07.carg_cd_cargo := LPAD( :b07.carg_cd_cargo, 4, '0' );

   IF :b07.carg_cd_cargo IS NOT NULL THEN

      DECLARE

         nAux  INTEGER;

      BEGIN
         -- Aqui o cidadão faz um Select Count
         -- e repetirá o mesmo Select mais abaixo pra trazer os campos (?)
         -- porquê não fez um Select somente?!

         SELECT COUNT(*)
           INTO nAux
           FROM rhcarvaga
          WHERE rhcarvaga.orgs_cd = :b07.orgs_cd
            AND rhcarvaga.carg_cd_cargo = :b07.carg_cd_cargo;

        IF nAux = 0 THEN

           MSG_AGENERICO('Não existem vagas disponíveis para órgão/setor e

cargo selecionados.');
           :b07.carg_cd_cargo := NULL;
           :b07.tc_carg_ds_cargo := NULL;
           RETURN;

        END IF;

      END;

     SELECT rhcargo.carg_ds_cargo
       INTO :b07.tc_carg_ds_cargo
       FROM rhcargo
      WHERE rhcargo.carg_cd_cargo = :b07.carg_cd_cargo;

     :b07.vaga_cd := NULL;
     :b07.tc_vaga_ds_essencia := NULL;

      BEGIN

         -- Aqui ele faz o mesmo Select, agora pra trazer os campos (dãããrr..)!

         SELECT rhcarvaga.vaga_cd,
                rhcarvaga.vaga_ds_essencia
           INTO :b07.vaga_cd,
                :b07.tc_vaga_ds_essencia
           FROM rhcarvaga
          WHERE rhcarvaga.orgs_cd = :b07.orgs_cd
            AND rhcarvaga.carg_cd_cargo = :b07.carg_cd_cargo;

      EXCEPTION

         WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN

            NULL;

      END;

   ELSE

      :b07.tc_carg_ds_cargo := NULL;
     :b07.vaga_cd := NULL;
     :b07.tc_vaga_ds_essencia := NULL;

   END IF;

END IF;
Porva
Localização: São Paulo/SP

Rafael S. Nunes
São Paulo/SP


Voltar para Códigos Duvidosos

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante