dorti Geschrieben 19. August 2004 Geschrieben 19. August 2004 Guten Morgen zusammen! Ich möchte eine explorerähnliche Baumstruktur im Browser darstellen. Dafür hab ich mir auch Javascript-Funktionen gebastelt, die das hinkriegen. Die Daten für den Explorer kommen aus einer Oracle 9i - Datenbank. Allerdings erwartet das JavaScript die Daten in der richtigen Reihenfolge, d.h. die Abfrage muss rekursiv sein. Bei Oracle gibt es auch eine Abfrage (CONNECT BY mit START WITH), die das hinbekommt. Allerdings kann man in dieser Abfrage kein ORDER BY verwenden. Die Daten kommen zwar jedes Mal in der gleichen Reihenfolge im Browser an, aber nicht alphabetisch. Kennt jemand eine Möglichkeit, die Daten in der richtigen Reihenfolge anzuzeigen bei CONNECT BY? Oder hat jemand eine SQL-Abfrage entwickelt, die das schafft? Ich erwarte diese Struktur: 0 Home ---1 Adressverwaltung ------2 Neue Firma ------2 Neue Person ---1 Systeme ------2 Neues System ---1 Wartung ------2 Passwort ändern Die Datenbank bringt es so: 0 Home ---1 Systeme ------2 Neues System ---1 Wartung ------2 Passwort ändern ---1 Adressverwaltung ------2 Neue Firma ------2 Neue Person Meine Abfrage sieht so aus: SELECT id, name, url, icon, target, vaterordner FROM ordner WHERE role IN (SELECT granted_role FROM user_role_privs) START WITH id = 1 CONNECT BY vaterordner = PRIOR id Zitieren
AxlHammer Geschrieben 19. August 2004 Geschrieben 19. August 2004 Hi, poste doch mal bitte die Tabellenstruktur von "ordner", dann ist das besser nachzuvollziehen. Wonach soll denn Dein Baum sortiert sein? Gruss, Axl Zitieren
dorti Geschrieben 19. August 2004 Autor Geschrieben 19. August 2004 Die Struktur der Tabelle sieht so aus: Ordner ------ ID NAME VATERORDNER ANSICHT URL ICON TARGET IDENT ROLE ID ist Primary Key, Name ist der sichtbare Name im Explorer, Vaterordner ist die ID des übergeordneten Ordners. Ansicht, URL, Icon, Target, Ident und Role spielen für die Sortierart keine Rolle. Der Baum soll so sortiert sein, dass alle Ordner immer unterhalb ihres Vaterordners erscheinen und alle Ordner gleichen Levels alphabetisch sortiert sind. Zitieren
AxlHammer Geschrieben 19. August 2004 Geschrieben 19. August 2004 Versuchs mal so... SELECT id, name, url, icon, target, vaterordner FROM ordner WHERE role IN (SELECT granted_role FROM user_role_privs) START WITH id = 1 CONNECT BY vaterordner = PRIOR id ORDER SIBLINGS BY name Zitieren
dorti Geschrieben 19. August 2004 Autor Geschrieben 19. August 2004 Hey, danke, das funktioniert ja super. War mir echt ne große Hilfe, vielen Dank! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.