AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Oracle + Firebird + Rekursion
Thema durchsuchen
Ansicht
Themen-Optionen

Oracle + Firebird + Rekursion

Ein Thema von fatima · begonnen am 2. Feb 2005 · letzter Beitrag vom 4. Feb 2005
 
Benutzerbild von lume96
lume96

Registriert seit: 14. Sep 2003
Ort: Rognac/Marseille - Frankreich
128 Beiträge
 
Delphi 7 Professional
 
#8

Re: Oracle + Firebird + Rekursion

  Alt 3. Feb 2005, 15:10
Moin,

hier mal 'n kleiner Vorschlag :
SQL-Code:
CREATE PROCEDURE HIERARCHIE (
    C_ID INTEGER,
    C_LEVEL INTEGER)
RETURNS (
    O_CHEF_ID INTEGER,
    O_EMP_ID INTEGER,
    O_EMP_NAME VARCHAR (50),
    O_LEVEL INTEGER)
AS
BEGIN

     if (c_level is null) then
        c_level = 0;

     FOR
        SELECT emp_ID, chef_ID, emp_name
        FROM employee
        WHERE (chef_ID = :C_ID) OR (chef_ID IS NULL AND :C_ID IS NULL)
        INTO :O_EMP_ID, :O_CHEF_ID, :O_EMP_NAME
      DO
      BEGIN
           o_level = c_level;
           SUSPEND;

           FOR
              SELECT o_emp_ID, o_chef_ID, o_emp_name, o_level FROM HIERARCHIE(:O_EMP_ID,:c_level+1)
              INTO :O_EMP_ID, :O_CHEF_ID, :O_EMP_NAME, :o_level
          DO
          BEGIN
               SUSPEND;
          END
      END
END
Wie es scheint, bekommt man bei EXECUTE PROCEDURE ... RETURNING VALUES immer nur das letzte Resultat zurück; die "Zwischenergebnisse" gehen leider flöten.

Ach ja, aufrufen kannst Du das Ganze mit
select * from HIERARCHIE(x,y) wobei :
X = chef_id (oder null für die gesamte Hierarchie)
Y = start_level (= gewünschte zahl für den höchsten Level)


Tschüss,
Lutz
Lutz Meyer
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz