Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-06-2008
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
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
Respuesta



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 22:31:56.


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