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:
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


Respuesta Responder a este mensaje
#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:
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:
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






Respuesta Responder a este mensaje
#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:
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


Respuesta Responder a este mensaje
#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:%
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:
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






email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida