AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Recursive Stored Procedure

Ein Thema von ibp · begonnen am 8. Jul 2010 · letzter Beitrag vom 8. Jul 2010
Antwort Antwort
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#1

Recursive Stored Procedure

  Alt 8. Jul 2010, 11:51
Datenbank: Interbase • Version: 6.5 • Zugriff über: PSQL
Hallo

ich versuche über eine SP Bauminformationen einer Tabelle abzurufen, aber leider klappt das nicht.

Es werden teilweise Datensätze nicht angezeigt. Kann mir aber leider nicht erklären warum!

Der Baum ist definiert durch PKEY und PARKEY

SQL-Code:
CREATE PROCEDURE P_TEST_ITERATE_TREE(
    START_TREEPKEY VARCHAR(32) CHARACTER SET NONE)
RETURNS (
    O_TREETITLE VARCHAR(60) CHARACTER SET NONE,
    O_TREEPKEY CHAR(32) CHARACTER SET NONE)
AS
declare variable V_TREEPKEY varchar(32);
BEGIN
  SELECT MY_TITEL, MY_PKEY
    FROM MY_TREETAB
   WHERE MY_PKEY = :START_TREEPKEY
    INTO :O_TREETITLE, :O_TREEPKEY;

   SUSPEND;

   FOR SELECT ITRE_PKEY
         FROM INKATREE
        WHERE MY_PARKEY = :O_TREEPKEY
         INTO :V_TREEPKEY
           DO
   BEGIN
      EXECUTE PROCEDURE P_TEST_ITERATE_TREE (:V_TREEPKEY) RETURNING_VALUES :O_TREETITLE,:O_TREEPKEY;

      SUSPEND;
   END
END
Vielleicht hat ja jemand eine Ahnung warum das so ist!

Danke schon mal....

Geändert von mkinzler ( 8. Jul 2010 um 11:54 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
borwin

Registriert seit: 14. Sep 2006
Ort: Rostock
72 Beiträge
 
Delphi 2007 Enterprise
 
#2

AW: Recursive Stored Procedure

  Alt 8. Jul 2010, 12:58
Hallo,

versuche mal folgendes. Mit Deiner Variante bekommst Du nur einen Datensatz zurück.
EXECUTE Prozedur liefert immer nur eine Zeile.

SQL-Code:
 FOR SELECT ITRE_PKEY
         FROM INKATREE
        WHERE MY_PARKEY = :O_TREEPKEY
         INTO :V_TREEPKEY
           DO
   BEGIN
       SUSPEND;
       -- Jetzt noch alle childs einsammeln
       FOR SELECT O_TREETITLE,:O_TREEPKEY
           FROM P_TEST_ITERATE_TREE (:V_TREEPKEY)
           INTO :O_TREETITLE, :O_TREEPKEY
       DO
       BEGIN
          suspend;
       END
   END
Gruß Borwin

Geändert von mkinzler ( 8. Jul 2010 um 12:59 Uhr) Grund: Code-Tag durch SQL-Tag ersetzt
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#3

AW: Recursive Stored Procedure

  Alt 8. Jul 2010, 13:47
ja das war das Problem nun klappt es...thx
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz