Angel
06-06-2003, 15:33:33
Hola a todos.....
Menuda semana que llevo que no me sale nada. :mad:
Estoy intentando hacer un procedure recursivo que me indique dentro de una tabla de usuarios quien será el usuario final que aprobará una petición. es decir, imaginaros la siguiente tabla:
usuario aprueba
u1 u2
u2 u3
u3 NULL
el caso es que si yo pregunto por el usuario final al que le aprueba una petición, en el caso del U1 me debería devolver el U3; el procedure que tengo creado es este, sin embargo, no sé si un procedure recursivo tiene "algun truco", o es que estoy haciendo algo mal
CREATE PROCEDURE "usuarioFinalAprobacion" (
USUARIO VARCHAR (7))
RETURNS (
USUARIOFINAL VARCHAR (80),
IDUSUARIO VARCHAR (7))
AS
declare variable nombreQuienAprueba varchar(80);
declare variable usuario1 varchar(7);
BEGIN
for select quienaprueba, nombreusr from
usuarios
where codusuario=:usuario
into :usuario1,:nombreQuienAprueba do
begin
if (:usuario1 is null) then
begin
usuarioFinal=:nombreQuienAprueba;
idUsuario=:usuario;
end
else
usuario=null;
execute procedure "usuarioFinalAprobacion"(:usuario1)
returning_values :nombreQuienAprueba, :usuario1;
end
END
¿alguna idea?
Menuda semana que llevo que no me sale nada. :mad:
Estoy intentando hacer un procedure recursivo que me indique dentro de una tabla de usuarios quien será el usuario final que aprobará una petición. es decir, imaginaros la siguiente tabla:
usuario aprueba
u1 u2
u2 u3
u3 NULL
el caso es que si yo pregunto por el usuario final al que le aprueba una petición, en el caso del U1 me debería devolver el U3; el procedure que tengo creado es este, sin embargo, no sé si un procedure recursivo tiene "algun truco", o es que estoy haciendo algo mal
CREATE PROCEDURE "usuarioFinalAprobacion" (
USUARIO VARCHAR (7))
RETURNS (
USUARIOFINAL VARCHAR (80),
IDUSUARIO VARCHAR (7))
AS
declare variable nombreQuienAprueba varchar(80);
declare variable usuario1 varchar(7);
BEGIN
for select quienaprueba, nombreusr from
usuarios
where codusuario=:usuario
into :usuario1,:nombreQuienAprueba do
begin
if (:usuario1 is null) then
begin
usuarioFinal=:nombreQuienAprueba;
idUsuario=:usuario;
end
else
usuario=null;
execute procedure "usuarioFinalAprobacion"(:usuario1)
returning_values :nombreQuienAprueba, :usuario1;
end
END
¿alguna idea?