AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Hierarchische Daten speichern und abrufen
Thema durchsuchen
Ansicht
Themen-Optionen

Hierarchische Daten speichern und abrufen

Ein Thema von EarlyBird · begonnen am 4. Feb 2011 · letzter Beitrag vom 6. Feb 2011
Antwort Antwort
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#1

AW: Hierarchische Daten speichern und abrufen

  Alt 4. Feb 2011, 20:10
Erstmal Danke für die Antworten.

CTE sagt mir jetzt leider nichts.
Werde mich mal mit Google schlau machen.

Im Grund ist mir die Tabellen-Struktur schon klar.
Nur bin ich mir über die Abfrage der Daten noch nicht im klaren.
Ich hatte gehofft das es mit einer bestimmten Tabellen-Struktur einfacher zu lösen ist.

Der beste Weg ist also die Daten über eine StoredProcedure rekursiv Abzufragen?
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#2

AW: Hierarchische Daten speichern und abrufen

  Alt 4. Feb 2011, 20:22
das habe ich gerade zu CTE gefunden:
http://msdn.microsoft.com/de-de/library/ms186243.aspx
Scheint ziemlich genau das zu sein was ich suche.
Jetzt muss ich es nur noch genau verstehen und umsetzen.
Danke für Eure vorzügliche schnelle Hilfe
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#3

AW: Hierarchische Daten speichern und abrufen

  Alt 4. Feb 2011, 21:18
Ich schon wieder.
Für alle die etwas ähnliches suche:
Ich habe die Abfrage aus http://msdn.microsoft.com/de-de/library/ms186243.aspx
mal ein bisschen vereinfacht.

Delphi-Quellcode:
USE yourDatenbank;
GO
WITH Organigramm (Chef, Mitarbeiter, Title, Level)
AS
(
-- Anchor member definition
      SELECT e.Chef, e.Mitarbeiter, e.Title, 0 AS Level
    FROM dbo.myMitarbeiter AS e
    WHERE e.Chef IS NULL
    UNION ALL
 -- Recursive member definition
    SELECT e.Chef, e.Mitarbeiter, e.Title, Level + 1
    FROM dbo.myMitarbeiter AS e
    INNER JOIN Organigramm AS d
        ON e.Chef = d.Mitarbeiter
)
-- Statement that executes the CTE
SELECT Chef, Mitarbeiter, Title, Level
FROM Organigramm order BY Level, Chef;
GO
So scheint es zu funktionieren.

Der Tip mit CTE war goldrichtig besten Dank noch mal dafür.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: Hierarchische Daten speichern und abrufen

  Alt 5. Feb 2011, 17:34
Hallo,

die DB war für Dich ja sekundär. Hier eine schöne Möglichkeit mit Oracle:

CONNECT BY PRIOR
Beschreibt die Beziehung zwischen Eltern und Kind Datensätzen einer Hierarchie

Code:
CONNECT BY <child_value> = <parent_value>
Beispiel:
Code:
conn hr/hr

SELECT employee_id, last_name, manager_id
FROM employees
CONNECT BY PRIOR employee_id = manager_id;
oder

Code:
SELECT last_name, employee_id, manager_id, LEVEL
FROM employees
START WITH employee_id = 101
CONNECT BY PRIOR employee_id = manager_id;
Wenn Du die Hierarchieebenen kennst und die Liste richtig sortiert ist, kommst Du allerdings ohne solche Dinge aus, wenn Du bspw. einen Treeview befüllen willst.
Stored Procedures, das Oracle Beispiel oben oder auch das Beispiel von MS benötigt man vor allem wenn man einen "Ast" oder Ausschnitt benötigt.

Hier ein paar mehr Infos zu
connect by
Gruß, Jo
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#5

AW: Hierarchische Daten speichern und abrufen

  Alt 6. Feb 2011, 13:49
Danke für den Oracle Tipp.
Mal sehen wie ich damit zurecht komme.
Ist von der Syntax ja viel einfacher wie bei MS-SQl
  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 20:01 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