Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQLite TreeView Select From (https://www.delphipraxis.net/185201-sqlite-treeview-select.html)

SyntaxXx 21. Mai 2015 13:52

Datenbank: SQLite • Version: 3 • Zugriff über: TSQLConnection

SQLite TreeView Select From
 
Guten Tag zusammen,
ich brauche eure Hilfe.

Ich schreibe gerade eine Anwendung, die Daten in eine SQLite Datenbank schreibt, und anhand **Keine Ahnung** (hier kommt ihr) Daten wieder auslesen soll.

Meine DB ist wie folgt aufgebaut.

Kategorien:
ID
Name


Artikel:
ID
Name
Beschreibung
KategorieID



Jetzt habe ich in einem TreeView alle Kategorien stehen.
Sobald der User eine Kategorie auswählt, sollen die Artikel angezeigt werden, die zu dieser Kategorie gehören.
Das Problem ist nur, an welcher Information kann ich nun die Artikel auslesen?

Denn bei einem TreeNode-Element habe ich außer dem Namen kein Feld, welches ich frei setzten könnte, zumindest sehe ich keins.
Am liebsten wäre mir ja ein Feld, in dem ich die ID der jeweiligen Kategorie speichern kann.


Mir ist klar, dass ich über den Namen der Kategorie an die ID komme, und mit dieser ID dann die Artikel suche, allerdings würde ich so ein Sub-Select gerne vermeiden.
Wisst ihr, wie ich am geschicktesten von der Auswahl der TreeView an meine Artikel komme?

mkinzler 21. Mai 2015 13:59

AW: SQLite TreeView Select From
 
Dann hat jemand bei Dir die Data-Property von TTreeNode geklaut.

SyntaxXx 21. Mai 2015 14:23

AW: SQLite TreeView Select From
 
Geklaut nicht unbedingt, ich hatte bis jetzt nur nie etwas davon gehört.
Aber kann mir denn jemand ein kurzes Beispiel nennen, wie ich dort jetzt einen Integer benutzen kann?

Da Data ein Pointer erwartet, nehme ich an, dass ich ein Objekt erstellen muss, auf welches ich verweise.
Habe leider noch nie mit Pointern gearbeitet.

Vielen Dank aber schon mal an dieser Stelle.

mkinzler 21. Mai 2015 14:32

AW: SQLite TreeView Select From
 
Einfach
Delphi-Quellcode:
  Node.Data := TObject(id);
Zum Auslesen
Delphi-Quellcode:
  id := Integer( Node.Data);

mkinzler 21. Mai 2015 14:34

AW: SQLite TreeView Select From
 
Einfach
Delphi-Quellcode:
  Node.Data := TObject(id);
Zum Auslesen
Delphi-Quellcode:
  id := Integer( Node.Data);

SyntaxXx 21. Mai 2015 14:44

AW: SQLite TreeView Select From
 
Hmmm, auch wenn ich das jetzt nicht verstehe, funktioniert es.
TObject(ID) erstellt doch nur aus ID ein neues Objekt vom Typ Object.
Das hat doch auch nichts mit nem Pointer zu tun.


Aber damit hast du mir wirklich sehr geholfen.
Vielen Dank.

mkinzler 21. Mai 2015 14:49

AW: SQLite TreeView Select From
 
Nein, es wird kein neues Objekt erzeugt, sondern der Wert des Integers wird als Pointer auf eine Objekt betrachtet. Im umgekehrten Fall wird der Wert als Integer interpretiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz