Delphi-PRAXiS
Seite 1 von 3  1 23   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TDBGrid mit Master/Detail? (https://www.delphipraxis.net/207645-tdbgrid-mit-master-detail.html)

NoGAD 18. Apr 2021 12:40

Datenbank: egal • Version: egal • Zugriff über: ttable

TDBGrid mit Master/Detail?
 
Hallo,

ist mit einem normalen DBGrid möglich, Daten aus verschiedenen Tabellen einer einzelnen Datenbank in den Spalten anzeigen zu lassen?

Momentan werden nur Einträge aus Tabelle 1 angezeigt, in Spalte 3 des DBGrid möchte ich aber lieber statt des Index auf Tabelle 2 den Inhalt des zweiten Feldes von Tabelle 2 anzeigen lassen.

(In einer DBLookup - Komponente (Combobox, z.B.) funktioniert das ja auch mittels Listfield.)

LG Mathias :-)

Uwe Raabe 18. Apr 2021 13:30

AW: TDBGrid mit Master/Detail?
 
Wenn ich dich richtig verstanden habe, dann kannst du das mit einem Lookup-Feld in Tabelle 1 lösen - ganz ähnlich wie mit der DBLookupComboBox.

DeddyH 18. Apr 2021 13:32

AW: TDBGrid mit Master/Detail?
 
Vergiss TTable und nimm eine Query, in der Du die beiden Tabellen zusammenjoinst.

Neumann 18. Apr 2021 13:54

AW: TDBGrid mit Master/Detail?
 
Wenn man Daten nur Anzeigen will, dann macht man schon beim Zugriff einen entsprechenden Select mit Joins o.Ä. Wenn die Daten editierbar sind, ist Lookup sinnvoll, etwa um Artikel leicher einer Gruppe zuordnen zu können oder wenn nur bestimmte Werte erlaubt sind.

NoGAD 18. Apr 2021 14:13

AW: TDBGrid mit Master/Detail?
 
Habt ihr (leicht) verständliche Tutorials (bitte in deutsch) für dieses Problem für mich?

Mir reicht es, wenn die Daten angezeigt werden.


LG Mathias

DeddyH 18. Apr 2021 14:30

AW: TDBGrid mit Master/Detail?
 
Nimm eine Query und gib in der Eigenschaft SQL sinngemäß etwas wie
SQL-Code:
SELECT
  T1.Feld1, T1.Feld2, ..., T2.Feld
FROM
  Tabelle1 T1
  JOIN Tabelle2 T2 ON T2.ID = T1.Tabelle2ID
ein. Die Feld- und Tabellennamen musst Du natürlich durch Deine eigenen Bezeichner ersetzen.

NoGAD 18. Apr 2021 17:22

AW: TDBGrid mit Master/Detail?
 
Zitat:

Zitat von DeddyH (Beitrag 1487342)
Nimm eine Query und gib in der Eigenschaft SQL sinngemäß etwas wie
SQL-Code:
SELECT
  T1.Feld1, T1.Feld2, ..., T2.Feld
FROM
  Tabelle1 T1
  JOIN Tabelle2 T2 ON T2.ID = T1.Tabelle2ID
ein. Die Feld- und Tabellennamen musst Du natürlich durch Deine eigenen Bezeichner ersetzen.

Und in welchem Ereignis wird das dann aufgerufen?


OnAfterScroll?

LG Mathias

DeddyH 18. Apr 2021 17:37

AW: TDBGrid mit Master/Detail?
 
Du weist die SQL-Anweisung zu und rufst dann Query.Open auf. Wenn das Grid über eine TDatasource mit der Query verknüpft ist, siehst Du sofort die Daten.

NoGAD 18. Apr 2021 17:38

AW: TDBGrid mit Master/Detail?
 
Vielen Dank, ich versuche mein Glück :-)

LG Mathias

Commander Tom 20. Apr 2021 12:56

AW: TDBGrid mit Master/Detail?
 
Man kann das aber auch über ein persistentes Nachschlagefeld im Query lösen. Dazu muss man in der Query mit Rechtsklick ein neues Nachschlagefeld anlegen und dann aus der zweiten Tabelle das anzuzeigende Feld angeben. Es muss dazu natürlich ein Fremdschlüssel auf die zweite Tabelle existieren, dies scheint aber in diesem Beispiel gegeben zu sein.

Das neue Feld kann man dann einfach im Grid anzeigen lassen und auch sonst überall verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 Uhr.
Seite 1 von 3  1 23   

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