Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi FIREBIRD und Hiearchien abfragen (https://www.delphipraxis.net/109736-firebird-und-hiearchien-abfragen.html)

Jens Schumann 6. Mär 2008 17:08

Datenbank: Firebird • Version: 2.0 • Zugriff über: IBX

FIREBIRD und Hiearchien abfragen
 
Hallo
aufbauend auf dieser Diskussion habe
ich versucht die Lösung für den MS-SQL-Server auf Firebird 2.0 zu übertragen. Das ist mir grundsätzlich auch gelungen. Leider weiss ich nicht wie man eine
temporäre Tabelle in einer Firebird procedure anlegen kann.
Hätte da jemand ein Beispiel für micht?


Code:
CREATE PROCEDURE "SELECT_SUBTREE"
(
  "I_NODETEXT" VARCHAR(25) CHARACTER SET ISO8859_1
)
RETURNS
(
  "O_ID" INTEGER,
  "O_PARENTID" INTEGER,
  "O_NAME" VARCHAR(25) CHARACTER SET ISO8859_1
)
AS
DECLARE VARIABLE CHILD_ID INTEGER;
begin
  DELETE FROM SUBTREE;
  INSERT INTO SUBTREE (ID,PARENT_ID,NAME)
     SELECT a.ID, a.PARENT_ID, a.NAME
              FROM tree a
              WHERE LOWER(a.Name) = LOWER(:I_NODETEXT);
             
  FOR SELECT p.ID
    FROM subtree p
    INTO :CHILD_ID
    AS CURSOR C
      DO
       INSERT INTO SUBTREE (ID,PARENT_ID,NAME)
          SELECT a.ID, a.PARENT_ID, a.NAME
              FROM tree a
              WHERE a.PARENT_ID=:CHILD_ID;
             
  FOR SELECT x.ID,x.Parent_ID,x.Name
    FROM subtree x
    INTO :O_ID,:O_PARENTID,:O_NAME
  DO
    SUSPEND;
end
 ^

mkinzler 6. Mär 2008 17:12

Re: FIREBIRD und Hiearchien abfragen
 
Geht in Firebird noch einfacher, da FireBird ab Version 2.1 CTE nativ unterstützt
http://www.firebirdsql.org/devel/doc...lsnotes21.html


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 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