![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#4
|
|||
|
|||
|
Modifica tu tabla agregando un campo contad(este servira cuantos id hijos tiene)
ID NOMBRE ID_PADRE CONTAD 1 RUBRO1 0 1 2 RUBRO11 1 1 3 RUBRO111 2 0 ///FIJATE EN ESTE DETALLE 3 RUBRO2 0 4 RUBRO21 3 Aqui te mando este procedure para rectificar mi error: CREATE PROCEDURE OBTENER_HIJOS(ID_PADRE INTEGER) RETURNS(NOMBRE VARCHAR(50)) AS BEGIN FOR SELECT NOMBRE FROM RUBROS WHERE ID_PADRE=:ID_PADRE ORDER BY ID INTO :NOMBRE DO BEGIN SUSPEND; END END Ahora modifica CREATE PROCEDURE GET_ARBOLRUBROS RETURNS (NOMB_PADRE CHAR (50), NOMB_HIJO VARCAR(50)) AS DECLARE VARIABLE ID INTEGER; DECLARE VARIABLE CONT INTEGER; BEGIN FOR SELECT ID, NOMBRE, CONTAD FROM RUBROS ORDER BY ID INTO :ID, :NOMB_PADRE, :CONTAD DO BEGIN IF (:CONTAD > 0) THEN BEGIN FOR SELECT NOMBRE FROM OBTENER_HIJOS(:ID) INTO :NOMB_HIJO DO BEGIN SUSPEND; END END END END Ojala te sirva, salu2. |
|
|
|