[firebase-br] Trigger x Select ... Roger 20/04/06

Roger roger em dgpram.com.br
Qui Abr 20 13:50:06 -03 2006


Olá Pessoal, boa tarde !!

Me desculpem pela ignorância (talvez seja alguma falta minha em relação ao
SQL), mas esta dúvida me deixou intrigado, e
se alguém puder me ajudar ...

No "trigger" abaixo, se fizer o select para "condicoes" uma única vez, para
uso nas instruções que se seguirão, as
variáveis que seria alimentadas pelo mesmo, parecem não estar.
Só consigo o resultado colocando o select dentro do "if".

Espero que tenha sido claro o suficiente!
Alguém saberia me explicar o motivo??

Obrigado,

[]´s Roger


CREATE TRIGGER REQUISICOES_AU0 FOR REQUISICOES
ACTIVE AFTER UPDATE POSITION 0
AS
 declare variable ...

begin

==> /* GOSTARIA DE TER ESTE SELECT ANTES UMA ÚNICA VEZ PARA SATISFAZER
VÁRIAS ROTINAS ABAIXO */
============================================================================
===================
    select c.cnd_parcelas, c.cnd_entrada, c.cnd_dias01, c.cnd_dias02,
c.cnd_dias03, c.cnd_dias04,
              c.cnd_dias05, c.cnd_dias06, c.cnd_dias07, c.cnd_dias08,
c.cnd_dias09, c.cnd_dias10
     from condicoes c where c.cnd_id = new.cnd_id
      into nparcelas, entrada, dias01, dias02, dias03, dias04, dias05,
                               dias06, dias07, dias08, dias09, dias10;

    /* inserir MF (a vista) */
     if (new.req_valorrecebido > 0) then
     begin
==>    /* SE NÃO FIZER O SELECT AQUI, a variável "nparcelas" me parece estar
sem valor */
============================================================================
=============
       select c.cnd_parcelas, c.cnd_entrada, c.cnd_dias01, c.cnd_dias02,
c.cnd_dias03, c.cnd_dias04,
              c.cnd_dias05, c.cnd_dias06, c.cnd_dias07, c.cnd_dias08,
c.cnd_dias09, c.cnd_dias10
         from condicoes c where c.cnd_id = new.cnd_id
           into nparcelas, entrada, dias01, dias02, dias03, dias04, dias05,
                                    dias06, dias07, dias08, dias09, dias10;

      execute procedure insere_financeiro('Q',new.req_id,'REQ', '1/' ||
nparcelas, new.req_valorrecebido, '001001001', 1);

=================
										    sem o select dentro do if não funciona!!

     end
    /*/
...

end



--------------------------------------------------
Esta mensagem foi verificada por Ultralink-Scanner
e nenhum virus foi encontrado.

Web Server Ultralink: http://www.ultralink.com.br
--------------------------------------------------





Mais detalhes sobre a lista de discussão lista