TTreeView & MySQL-DB

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
Muelli
Beiträge: 7
Registriert: Di 28. Mai 2013, 07:46

TTreeView & MySQL-DB

Beitrag von Muelli »

Hallo zusammen,

ich möchte eine TreeView-Komponente aus einer SQL-Abfrage befüllen. Grundsätzlich geht das auch schon nur steh ich auf dem Schlauch was Unterknoten & Unter-Unterknoten angeht :lol:

Aus der DB kommen x Datensätze und jeder Datensatz hat unter anderen 3 Felder für die jeweiligen OrdnungsEbenen. Als Bsp.:
OE1 | OE2 | OE3
1 | 1 | 1
1 | 1 | 2
1 | 2 | 1
1 | 3 | 1
2 | 1 | 1
2 | 2 | 1
2 | 2 | 2
3 | 1 | 1
3 | 2 | 1

Nun möchte ich im TreeView quasi in der ersten Ebene die Knoten 1,2,3. Konten 1 hat die Unterknoten 1,2,3. Knoten 2 hat die Unterknoten 1,2 usw. usw.
Habs mit TreeView.Items.FindNodeWithText versucht. Hab mir gedacht wenn er den Knoten nicht findet soll er ihn adden. Leider gibt FindNodeWithText nix zurück wenn er den Knoten nicht findet... So komm ich nie in den Fall das er added -.-

Hat jemand hier die Lösung für mein Problem? Danke für eure Hilfe!

Liebe Grüße,

der Mülli

MmVisual
Beiträge: 1470
Registriert: Fr 10. Okt 2008, 23:54
OS, Lazarus, FPC: Winuxarm (L 3.0 FPC 3.2)
CPU-Target: 32/64Bit

Re: TTreeView & MySQL-DB

Beitrag von MmVisual »

In der Datenbank gibt es nur zwei Felder für den Baumaufbau:

ID
Parent_ID

Damit lässt sich ein Baum mit beliebiger Größe/Tiefe erstellen.

Beim TTreeNode.Data wird die ID des Datensatzes gespeichert. Wenn man nun auf den Baum klickt, so kann automatisch immer anhand der Data Eigenschaft auf die Tabelle mit der eindeutigen ID gesprungen werden.
Alle Baum-Haupt Einträge haben den Wert Parent_ID = NULL, ansonsten zeigt der Parent_ID immer auf die ID des überliegenden Elements (Datensatzes).

Als Text kannst DU eine dritte Spalte "Bezeichnung" in der DB hinzufügen, ist aber für die Verwaltung unwichtig, nur willst Du wahrscheinlich einen Text sehen.
EleLa - Elektronik Lagerverwaltung - www.elela.de

Antworten