Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   [SQL] Kaskadierende Eltern-Kind Beziehung in selber Tabelle auflösen (https://www.delphipraxis.net/155671-%5Bsql%5D-kaskadierende-eltern-kind-beziehung-selber-tabelle-aufloesen.html)

Medium 3. Nov 2010 21:02

AW: [SQL] Kaskadierende Eltern-Kind Beziehung in selber Tabelle auflösen
 
Hmhmhm, ich habe jetzt zunächst mit einer SP rumgespielt, wobei ich hier bisher nur mit einfachen Einzeilern rumgemacht habe. MySQL meckert einen Fehler in der letzten Zeile des folgenden an:
SQL-Code:
CREATE FUNCTION makefullname (name VARCHAR(255), pid INT)
RETURNS VARCHAR(255)
BEGIN
  DECLARE name2 VARCHAR(255);
  DECLARE pid2 INT;
  DECLARE c CURSOR FOR SELECT name, parentID FROM testtabelle WHERE id=pid;

  OPEN c;
  FETCH c INTO name2, pid2;

  IF pid2!=0 THEN
    RETURN CONCAT(name, ' ', makefullname(name2, pid2));
  ELSE
    RETURN name;

  CLOSE c;
END;
"END;" ist fast sicher richtig :). Aber wo ist mein Patzer wirklich? Zudem scheint mein MySQL server die Variable zum Verstellen der Rekursionstiefe nicht. Lustigerweise benennt das selbe Manual für die selbe MySQL Version (5.1) sowohl die Option zum Einstellen der maximalen Tiefe, schreibt in der Sektion zu Einschränkungen von SPs aber gleichzeitig "- Stored functions cannot be used recursively. Watten nu!? *seufz*

Das mit dem JOIN wäre so sexy gewesen. Im Zweifel werd ich morgen auch noch mal temporäre Tabellen versuchen - ich hoffe, dass das nicht zu langsam wird :\

mkinzler 3. Nov 2010 21:04

AW: [SQL] Kaskadierende Eltern-Kind Beziehung in selber Tabelle auflösen
 
Was für einen Fehler?

Medium 3. Nov 2010 21:17

AW: [SQL] Kaskadierende Eltern-Kind Beziehung in selber Tabelle auflösen
 
Zitat:

Fehler, währen die Abfrage ausgeführt wurde.

MySQL Fehlernummer1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 17
Der Fehler 1064 scheint laut Onkel Google öfter mal vorzukommen, und zwar bei einer ganzen Fülle von Operationen, worunter auch CREATE TABLEs und völlig andere Dinge gehören. Eine genauere Beschreibung zu dieser Nummer habe ich leider nicht finden können, wodurch die Meldung für mich so aussagekräftig wird wie "geht nicht" :\
Ich benutze übrigens den MySQL Administrator aus den GUI-Tools von MySQL.

omata 3. Nov 2010 22:24

AW: [SQL] Kaskadierende Eltern-Kind Beziehung in selber Tabelle auflösen
 
Es geht auch ohne Rekursion... klick


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Seite 2 von 2     12   

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