[firebase-br] O que há de errado nesta SP ????

Marcelo Silva marcvan em ig.com.br
Qui Jul 26 10:13:35 -03 2007


Pessoal porque ele nao aceita o parametro MAX_NIV ???


CREATE PROCEDURE SP_ARVORE (
    PAI INTEGER,
    MAX_NIV INTEGER)
RETURNS (
    COD_HER INTEGER,
    COD_GRU INTEGER,
    COD_PAI INTEGER)
AS
BEGIN

-- Retorna os dados do Pai, se não for o chamada principal
    IF ((:PAI <> 0)AND(:MAX_NIV < 3)) THEN BEGIN
        SELECT COD_GRU, COD_PAI, COD_HER
        FROM CARD_GRUPOS
        WHERE COD_GRU = :PAI
        INTO :COD_GRU, :COD_PAI, :COD_HER ;
        SUSPEND;
    END

-- Procura por filhos desse pai.
    FOR
        SELECT COD_GRU, COD_PAI, COD_HER
        FROM CARD_GRUPOS
        WHERE COD_PAI = :PAI
        INTO :COD_GRU, :COD_PAI, :COD_HER
    DO
    -- Se existir ele chama como recursivamente a SP para pegar o nome e verificar se tem netos.

    FOR
        SELECT COD_GRU, COD_PAI, COD_HER
        FROM SP_ARVORE( :COD_GRU )
        INTO :COD_GRU, :COD_PAI, :COD_HER
    DO
    
    SUSPEND;

END


Mais detalhes sobre a lista de discussão lista