Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankeinträge aus mehreren Tabellen in einem DBGrid (https://www.delphipraxis.net/207344-datenbankeintraege-aus-mehreren-tabellen-einem-dbgrid.html)

NoGAD 15. Mär 2021 18:34

Datenbank: ABS_Database • Version: 7.92 • Zugriff über: ABSTable/ABSQuery

Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Hallo,

wieder einmal eine reine Anfängerfrage.

Ich habe eine Datenbank, in der z.B. 3 Tabellen gespeichert sind. Aus diesen Tabellen möchte ich nun über die jeweiligen ID den Inhalt in die Spalten eines DBGrid eintragen lassen.

Wo genau muss ich eine entsprechende SQL-Anweisung hinterlegen?

Meine erste Intuition wäre im OnFilterRecord der entsprechenden Komponente (TTable oder TQuery z.B.).

LG Mathias

Delphi.Narium 15. Mär 2021 18:47

AW: Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Literatur: https://www.w3schools.com/sql/sql_join.asp
SQL-Code:
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers ON Orders.CustomerID=Customers.CustomerID;

NoGAD 15. Mär 2021 19:56

AW: Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Danke für die Info.

Meine Frage war eher, wo im Code solch eine Anweisung untergebracht werden muss.

LG Mathias

Delphi.Narium 15. Mär 2021 20:08

AW: Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Im SQL.Text einer TQuery-(o. ä.)-Komponente.

Dort das SQL rein und Open aufrufen.

TQuery wird via TDataSource mit dem TDBGrid verbunden.
Delphi-Quellcode:
  Query.Close;
  Query.SQL.Text = 'SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate FROM Orders INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID';
  Query.open;

NoGAD 15. Mär 2021 21:29

AW: Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Hallo nochmal,


es tut mir wirklich leid, ich verstehe das nicht.

Wenn ich meine Tabelle öffne, wird der Inhalt normalerweise automatisch im DBGrid abgebildet, weil zwei Komponenten verbunden sind. Das klappt bei einer Tabelle auch sehr gut.

Nun versuche ich aber die eine Tabelle in zwei aufzuteilen und muss demzufolge aus der ersten Werte auslesen und auch aus der zweiten Tabelle. Das DBGrid erlaubt doch aber nur aus einer Tabelle die Werte anzeigen zu lassen.

LG Mathias

juergen 15. Mär 2021 22:23

AW: Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Zitat:

Zitat von NoGAD (Beitrag 1485227)
Das DBGrid erlaubt doch aber nur aus einer Tabelle die Werte anzeigen zu lassen.

An ein DBGrid kann auch eine Datasource gehängt werden die auf deine Query zeigt. Also im Grid die Datasurce hinterlegen und in der Datasource bei Dataset die Query hinterlegen.
Ich hoffe das hilft dir weiter.

Jasocul 16. Mär 2021 06:16

AW: Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Oder anders ausgedrückt:
Verabschiede dich von der Komponente TTable und nimm TQuery und lerne SQL.

haentschman 16. Mär 2021 06:55

AW: Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Zitat:

Verabschiede dich von der Komponente TTable und nimm TQuery und lerne SQL.
+1 :thumb:

Und die Query+SQL sollten an einem "Platz" (DataModule etc.) untergebracht werden...und nicht über das ganze Programm verteilt. :warn:

NoGAD 16. Mär 2021 19:50

AW: Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Danke euch allen.

Es hilft weiter :-)

Lernen im höheren Alter fällt etwas schwerer ;-)

LG Mathias

Delphi.Narium 17. Mär 2021 09:16

AW: Datenbankeinträge aus mehreren Tabellen in einem DBGrid
 
Zitat:

Zitat von NoGAD (Beitrag 1485312)
Danke euch allen.

Es hilft weiter :-)

Lernen im höheren Alter fällt etwas schwerer ;-)

LG Mathias

Ja, kenn' ich, es dauert etwas länger, ist dafür aber gründlicher und man hat mehr Zeit, niemand mehr jagt einen zu Ergebnissen, man muss nicht mehr liefern und hat mehr Zeit ;-)

Einfacher Einstieg in SQL: https://www.datenbanken-verstehen.de/sql-tutorial/

Einfach vom Beginn an durcharbeiten (nicht erstmal querlesen oder so, das verwirrt nur unnötig - autofahren lernt man auch nicht zuerst im Formel 1-Boliden bei Vollgas auf dem Nürburgring) und jeweils alles mit eigenen Daten und Tabellen ausprobieren, um jeweils zu sehen, wo wann genau was mit den Daten passiert. Das Verstehen kommt dann von alleine.

Am Ende hat man alles Wesentliche gelernt, was für den "alternden Normalverbraucher" ;-) erforderlich ist. Und: SQL ist in der Regel alles Mögliche, aber bestimmt kein Hexenwerk. Und garantiert einfacher, als objektorientierte Programmierung. ;-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:24 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