Entwickler-Ecke

Sonstiges (Delphi) - Hilfe bei Prog.Planung wg. Treeview u. lok. Datenbank (FB?)


HeftCD - Mo 08.08.11 12:36
Titel: Hilfe bei Prog.Planung wg. Treeview u. lok. Datenbank (FB?)
Hallo,

und zwar möchte ich - *** am besten mit Delphi 3 Pro (max. D5Std; allerhöchstens D7 Std) ***





falls ich mich für Memo entscheide (wahrscheinlich weniger Aufwand - sollen die Daten alle ganz siple untereinander angezeigt werden)

A) Wichtig ist auf jeden Fall die portable Datenbank - da dachte ich an Firebird oder SQLite - ich hab zwar versucht mich in beide einzulesen, allerdings suche ich immer noch gute, verständliche Tutorials. Falls da noch wer welche hätte?


B) Schaff ich das mit der Delphi3/5/7 Treeview oder muß ich das besser mit der VirtualTreeview machen? Welche dringenden Vorteile brächte mir das gegenüber der eingebauten noch?
Gibts auch dazu einfache/ oder passgenaue Tutorias?

c)Ganz wichtig noch, die Verknüpfung der Daten zwischen Treview, Adress/Tel-Informationen zum Namen und Datenbank [Speicherung und Abfrage]
Wie geht man dabei vor?
Mach ich das mit Pointern oder nur Aarrys of Records zur jew. Treenodezahl oder Treenview und Records?
[mit Pointern hab ich noch Probleme]


Wäre nett, wenn Ihr kurz erläutern könntet, wie Ihr vorgehen würdet, welche Tree-Komponenten besser sind und welche Datenbank.
Mit ist das Thema auch nützlich für andere.
Ich danke schon mal im Voraus.


Moderiert von user profile iconNarses: Topic aus Delphi Language (Object-Pascal) / CLX verschoben am Mo 08.08.2011 um 12:51


Xion - Mo 08.08.11 13:40

user profile iconHeftCD hat folgendes geschrieben Zum zitierten Posting springen:
A) Wichtig ist auf jeden Fall die portable Datenbank - da dachte ich an Firebird oder SQLite - ich hab zwar versucht mich in beide einzulesen, allerdings suche ich immer noch gute, verständliche Tutorials. Falls da noch wer welche hätte?

SQLite:
http://www.itwriting.com/blog/?page_id=659
Dort ist glaube ich beim Download ein Beispiel dabei. Ich kannte überhaupt keine Probleme damit (hab allerdings bisher noch keine komplexen Sachen mit gemacht). Portabel ist sie auf jeden Fall absolut, nur eine dll neben deine exe und fertig. Für Single-User-Beispiele ist SQLite sehr beliebt.


user profile iconHeftCD hat folgendes geschrieben Zum zitierten Posting springen:
c)Ganz wichtig noch, die Verknüpfung der Daten zwischen Treview, Adress/Tel-Informationen zum Namen und Datenbank [Speicherung und Abfrage]
Wie geht man dabei vor?
Mach ich das mit Pointern oder nur Aarrys of Records zur jew. Treenodezahl oder Treenview und Records?

Also ich würds so machen:
Du hast erstmal deine normale Datenbank mit den Werten (evtl in mehrere Tabellen normalisiert). Dort sind einfach deine Leute mit den Daten gespeichert. Jede Person hat natürlich eine ID.

Deine Baumstruktur würde ich nur über die IDs machen.
Die Baumstruktur kannst du dann so machen:


Quelltext
1:
 Vater-ID | Kind-ID                    


Eine Afrage könnte dann so aussehen:


SQL-Anweisung
1:
2:
SELECT Personen.Name FROM Personen, Tree
WHERE Tree.VaterID = 42 AND Personen.ID = Tree.KindID


=> Liefert alle Kinder von 42.


SQL-Anweisung
1:
2:
SELECT Personen.Name FROM Personen, Tree T1, Tree T2
WHERE T1.VaterID = 42 AND T2.VaterID = T1.KindID AND T2.KindID = Personen.ID


=> Liefert alle Kinder aller Kinder von 42 (also die Enkel sozusagen).

Du kannst das ganze auch rekursiv machen. Ob das mit SQLite geht ist die Frage. Dann könntest du beliebig viele Stufen machen.

Da ich aber nicht glaube dass du Performance-Probleme kriegst (du willst ja nicht alle 30k in einen Baum packen denke ich), dürfte sogar der erste SQL-Befehl nutzen.