Retroceder   Foros del Web > Programación para sitios web > Bases de Datos > SQL Server

Respuesta
 
Herramientas Desplegado
Antiguo 01-may-2008, 11:46   #1 (permalink)
LUISESPOCH ha deshabilitado el karma
 
Avatar de LUISESPOCH
 
Fecha de Ingreso: octubre-2006
Mensajes: 102
Molesto Recursivo

Hola amigos todos..
Alguien me puede ayudar orientandome como hago una funcion recursiva que traiga los valores de la siguiente estructura:


Aviones
|
!__ Avx
.......|
........|__AVXXX
........|..........|
........|..........|___amtx
........|..........|___amty
........|__AVYYY
...................|___amtx

IdActivo Activo IdActivoPadre Nivel
2_______Aviones___0___________1
10______AVX______2___________2
12______AVXXX____10__________3
13______AVYYY____10__________4
16______amtx_____12__________4
19______amty_____12__________4
20______bxy______13__________4


Me explico:
Actualmente tengo un SP que me barre un conjunto de registros tomando en el WHERE el IdActivo=@PI_IdActivo; este @PI_IdActivo es el valor que coje al hacer clic el usuario dentro del arbol.

Esto me funciona OK cuando la categoria que selecciona es la ultima porque la cojo directo, pero cuando coje una categoria padre NO ME FUNCIONA porque no hay registros para esa categoria sino para las hijas...
POR LO TANTO...
Me gustaría hacer un barrido de todos las ctagorias que son hijas de la categoria seleccionada por el usuario.


Le estará muy agradecido a la persona que me de una manito en esto..ya que yo lo he intentado pero hago lios..

Gracias amigos..
PD: Estoy con SQLServer2005

Luis
LUISESPOCH está desconectado   Responder Citando
Antiguo 02-may-2008, 11:33   #2 (permalink)
Colaborador
iislas ha deshabilitado el karma
 
Fecha de Ingreso: julio-2007
Mensajes: 1.155
Re: Recursivo

Revisa este link, tal vez encuentres la solucion:


http://msdn.microsoft.com/en-us/library/ms186243.aspx
iislas está desconectado   Responder Citando
Antiguo 02-may-2008, 15:04   #3 (permalink)
flaviovich está en el buen camino
 
Avatar de flaviovich
 
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 1.152
Enviar un mensaje por ICQ a flaviovich Enviar un mensaje por MSN a flaviovich Enviar un mensaje por Skype™ a flaviovich
Re: Recursivo

No he probado este script, pero tu como el interesado lo haras:
Código:
CREATE FUNCTION dbo.sp_Seek4NestedRec
(
    @PI_IdActivoPadre INT
)
RETURNS TABLE
AS
DECLARE @TableVar TABLE(IdActivo INT, Activo VARCHAR(20), IdActivoPadre INT, Nivel INT)
IF EXISTS(SELECT 1 FROM Aviones WHERE IdActivoPadre = @PI_IdActivoPadre)
BEGIN
    SET @TableVar = dbo.sp_Seek4NestedRec(@PI_IdActivo)
END
RETURN SELECT * FROM Aviones WHERE IdActivoPadre = @PI_IdActivoPadre
    UNION @TableVar
--@@NESTLEVEL
GO
DECLARE @t_aviones TABLE(IdActivo INT, Activo VARCHAR(20), IdActivoPadre INT, Nivel INT)
SET @t_aviones = dbo.sp_Seek4NestedRec(@PI_IdActivo)
SELECT * FROM @t_aviones
__________________
Если можешь читать это, то напиши мне..
No repitamos temas, usemos el Motor de busquedas
flaviovich está desconectado   Responder Citando
Antiguo 02-may-2008, 16:44   #4 (permalink)
Colaborador
iislas ha deshabilitado el karma
 
Fecha de Ingreso: julio-2007
Mensajes: 1.155
Re: Recursivo

flaviovich

No estoy en contra de tu funcion, solo que para 2005 me parece mejor utilizar CTE's ya que es algo mas nativo de esta version

Saludos
iislas está desconectado   Responder Citando
Antiguo 05-may-2008, 15:18   #5 (permalink)
LUISESPOCH ha deshabilitado el karma
 
Avatar de LUISESPOCH
 
Fecha de Ingreso: octubre-2006
Mensajes: 102
Re: Recursivo

Gracias a todos me hice una funcion en base a las ayudas de acá y si me esta funcionando. Gracias a todos los amigos del foro.
LUISESPOCH está desconectado   Responder Citando
Respuesta
Calificación: Calificación de Tema: 1 votos, 5,00 de promedio.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 02:57.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93