AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Datenbanken Baumzusammenstellung mit Hilfe von SQL (MS SQL)
Thema durchsuchen
Ansicht
Themen-Optionen

Baumzusammenstellung mit Hilfe von SQL (MS SQL)

Ein Thema von omata · begonnen am 16. Aug 2006 · letzter Beitrag vom 25. Jan 2007
Antwort Antwort
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: [MsSQL] Stored Proc für Baum Zusammenstellung

  Alt 25. Jan 2007, 14:46
Ich habe gerade festgestellt, dass der angegebene Link nicht mehr geht.

Hier ein Beispiel mit Ideen von da...
SQL-Code:
CREATE TABLE [Tree] (
   NodeID int NOT NULL,
   ParentNodeID int NULL,
   NodeName varchar (50) COLLATE Latin1_General_CI_AS NOT NULL,
   Reihenfolge int NULL,
   CONSTRAINT PK_Tree PRIMARY KEY CLUSTERED (NodeID) ON PRIMARY,
   CONSTRAINT FK_Tree_Tree FOREIGN KEY (ParentNodeID) REFERENCES Tree (NodeID)
) ON PRIMARY
SQL-Code:
CREATE PROCEDURE GetSortedSubTree(@NodeID INT)
AS
DECLARE @IDS TABLE (id INT PRIMARY KEY, Depth INT, NodePath VARCHAR(1000))
DECLARE @Depth INT
DECLARE @Done BIT

SET @Depth = 1
SET @Done = 0

INSERT @IDS(id, Depth, NodePath)
SELECT NodeID, @Depth, CONVERT(VARCHAR(1000), Reihenfolge)
FROM Tree
WHERE NodeID = @NodeID

IF @@ROWCOUNT = 0 SET @Done = 1
WHILE @Done = 0 BEGIN
  SET @Depth = @Depth + 1
  INSERT @IDS(id, Depth, NodePath)
  SELECT NodeID, @Depth, ids.NodePath + '|' + CONVERT(VARCHAR(1000), Reihenfolge)
  FROM Tree t
  INNER JOIN @IDS ids
    ON ids.id = t.ParentNodeID
  WHERE ids.Depth = @Depth-1
  IF @@ROWCOUNT = 0 SET @Done = 1
END

SELECT t.NodeID, t.NodeName, ids.Depth, ids.NodePath
FROM Tree t
INNER JOIN @IDS ids
  ON ids.id = t.NodeID
ORDER BY ids.NodePath
Gruss
Thorsten
  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 07:08 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