Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-06-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 21
Vlady Va por buen camino
Procedimiento recursivo

Hola amigos del foro mi pregunta es la siguiente tengo una tabla con los siguientes campos:

ID, ANTECESOR, CUENTA, NOMBRE CUENTA
--------------------------------------------
1, NULL, 1, ACTIVO
2, NULL, 11, DISPONIBLE
3, NULL, 1105, CAJA
4, NULL, 110505, CAJA GENERAL
5, NULL, 110510, CAJAS MENORES
.
.
.

y asi sucesiva mente en un arbol

La cuestion es la siguiente el campo antecesor lo debo de llenar con el ID del numero de cuenta q en el orden gerarquico corresponda alog asi como esto:


ID, ANTECESOR, CUENTA, NOMBRE CUENTA
--------------------------------------------
1, -1, 1, ACTIVO
2, 1, 11, DISPONIBLE
3, 2, 1105, CAJA
4, 3, 110505, CAJA GENERAL
5, 3, 110510, CAJAS MENORES
6, 2, 1110, BANCOS
.
.
.

he creado el siguiente procedimiento q de forma recursiva me recorra la tabla y me actualice el campo antecesor, lo haga con pruebas de escritorio y creo q funciona bien pero cuando lo ejecuto me aparecen todos la columna antecesor en uno cuando corro el procedimiento le doy como paramentros de entrada 1 y 1, este es el codigo

Código SQL [-]
CREATE PROCEDURE ACTULIZARPUC (
    antecesor integer,
    cuenta integer)
as
declare variable id1 integer;
declare variable cuenta1 varchar(20);
begin
   FOR SELECT ID, CUENTA FROM PUC
     WHERE CUENTA LIKE (:CUENTA || '%') ORDER BY CUENTA INTO :ID1, :CUENTA1 DO
   BEGIN
      if (:CUENTA = :CUENTA1) then
      BEGIN
          UPDATE PUC SET ANTECESOR = :ANTECESOR WHERE ID = :ID1;
          ANTECESOR = :ID1;
      END
      ELSE
         EXECUTE PROCEDURE ACTULIZARPUC :ANTECESOR, :CUENTA1;
   END
end
 
estoy trabajando con firebird 2.0 y delphi 7, si alguien sabe donde esta el problema en la recursividad por favor me lo diga. Gracias
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Procedimiento almacenado recursivo williammoreno SQL 2 03-02-2016 16:18:48
copiar una carpeta (recursivo) Samurai JAVA 2 10-04-2007 14:33:28
TreeView Recursivo jorge_mosquera Varios 3 30-01-2007 11:11:54
Salir de un procedimiento recursivo cardomjar Varios 3 18-04-2005 20:07:38
crear procedure recursivo Angel Firebird e Interbase 2 10-06-2003 12:25:33


La franja horaria es GMT +2. Ahora son las 23:36:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi