Store Procedures recursivos???

14/03/2006 - 23:30 por Nohel Hernandez | Informe spam
Buenas tardes a todos

Primero quiero agradecerles por leer mi post y por cualquier ayuda que me
puedan brindar.

Mi duda es la siguiente:

Tengo las siguientes tablas
Articulos-> Contiene la descripcion de los articulos a la venta
Encabezado_Compuestos -> Es un encabezado para la definicion de articulos
que estan conformados por otros articulos (es decir un articulo compuesto)
Detalle_Compuestos -> Tabla que incluye los componentes del Articulo
Compuesto

Ahora bien
Tengo Articulos que son simples, se venden directamente al cliente
Tengo Articulos que son compuestos (Aparecen en la tabla Articulos y en el
Encabezado del compuesto)
Pero dentro del detalle del compuesto puedo tener articulos que a su vez son
otros compuestos

Podria ser asi
Articulo-> COMPUTADOR
Compuestos
1-Montiror
2-Teclado
3-Mouse
4-CPU-PIV-512

Pero CPU-PIV-512 es otro compuesto

CPU-PIV-512
Compuesto por:
1-Procesador PIV
2-Memoria 512
3-DD 80GB

Lo que quiciera es obtener un recordset que contenga

COMPUTADOR
Montitor
Teclado
Mouse
Procesador PIV
Memoria 512
DD80 GB

el primer paso lo tengo resuelto, puedo conseguir facilmente en una consulta
SQL el articulo y todos sus componentes, mi problema viene cuando uno de sus
componentes es a su vez un compuesto

Existe la forma de crear un store_procedure recursivo?? para poder ir
buscando los componentes de los componentes hasta conseguir que no tiene
componentes?? me explique o lo que logre fue un trabalenguas jejeje?? :-)

Bueno si alguien a logrado hacerlo mucho le agradeceria su colaboracion


Gracias

Nohel Hernandez
Caracas-Venezuela

Preguntas similare

Leer las respuestas

#1 Noldis Chumacero
15/03/2006 - 00:11 | Informe spam
Nohel,

Claro que puedes hacer procedimientos recursivos, sólo tienes que tener
encuenta dos cosas
a) El corte de recursión, para que no sea infinito (pero no lo será sino que
sólo te aguanta hasta 32 niveles de recursión)

b) Para saber el nivel de recursión puedes utilzar @@nestlevel


Ing. Noldis Chumacero Chávez
Departamento de Sistemas
AeroSur S.A.
Santa Cruz de la Sierra, Bolivia
Telf. 3364446(236) 77074919
"Nohel Hernandez" escribió en el mensaje
news:
Mostrar la cita
#2 Nohel Hernandez
15/03/2006 - 00:32 | Informe spam
Muchas Gracias por tu info Noldis

tendras algun ejemplo del uso del @@nestlevel??

Tengo que crear un cursor dentro del store procedure para ir leyendolo
secuencialmente y hacer la llamada a el mismo con un parametro del codigo
del articulo?? Disculpa mi insistencia pero tengo que admitir que estoy algo
perdido..

Gracias nuevamente

Saludos

Nohel Hernandez
Caracas-Venezuela


"Noldis Chumacero" escribió en el mensaje
news:
Mostrar la cita
#3 Ele
15/03/2006 - 00:36 | Informe spam
Hola primero debes tener clara la condicion de terminacion de la
recursividad este tipo de practicas es muy bueno para soluciones como
recorrer un arbol pero, para un recorset yo mejor haria una union o en el
frontend crear un corte encabezado-detalle y un llamado al procedimiento
para cada uno

"Nohel Hernandez" escribió en el mensaje
news:
Mostrar la cita
son
Mostrar la cita
consulta
Mostrar la cita
sus
Mostrar la cita
#4 Nohel Hernandez
15/03/2006 - 01:00 | Informe spam
Gracias por responder Ele

Entiendo tu planteamiento pero efectivamente en la practica lo que tengo es
un arbol ya que los componentes de un articulo pueden ser a su vez
compuestos y tener sus propios componentes asi que quedaria algo asi

Principal (Nivel 1)
Componente 1 (Nivel 2)
Componente 2 (Nivel 2)
Componente 3 (Nivel 2)
Componente 3.1 (Nivel 3)
Componente 3.2 (Nivel 3)
Componente 3.3 (Nivel 3)
Componente 4 (Nivel 2)
Componente 4.1 (Nivel 3)
Componente 4.1.1 (Nivel 4)
Componente 4.1.2 (Nivel 4)
Componente 4.2 (Nivel 3)
Componente 5 (Nivel 2)

Espero haberme explicado


Gracias

Nohel Hernandez
Caracas-Venezuela



"Ele" escribió en el mensaje
news:%
Mostrar la cita
Ads by Google
Search Busqueda sugerida