Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Datenbank Abfrage über 2 Tabellen (https://www.delphipraxis.net/207725-datenbank-abfrage-ueber-2-tabellen.html)

Delphi.Narium 27. Apr 2021 15:25

AW: Datenbank Abfrage über 2 Tabellen
 
Code:
Hauptabfrage doch "'FROM '+DB_AUSGABEN+' AS A"
ist keine Haupt-... oder sonstwie privilegiert Teil einer Abfrage, sondern nur ein gleichberechtigter Teil der Ergebnismenge.

"'FROM '+DB_AUSGABEN+' AS A" ist keinen Cent mehr oder weniger Wert als die per (Left)-Join dazugeholten Daten der anderen Tabellen.

Schreib doch erstmal mein obiges SQL auf Deine Belange um. Versorge eine Query mit dem daraus resultierenden SQL. Verbinde die Query per DataSource mit 'nem DBGrid und schau Dir dort das Ergebnis an. (Oder nutze das von Dir bevorzugte Werkzeug zum Umgang mit Deiner Datenbank dazu.)

Eine Ausgabe mit drei Dokumenten wird dort in drei Datensätzen dargestellt werden, die sich nur in den Daten der Dokumente unterscheiden, nämlich je Dokument eine Zeile. Die Daten der Ausgabe werden in den drei Sätzen absolut identisch sein.

himitsu 27. Apr 2021 16:17

AW: Datenbank Abfrage über 2 Tabellen
 
Jo, es gibt ja genug externe SQL-Editoren, wo man so Statements erstmal in Ruhe testen kann.

Da wir aber auch viele Komponenten (Query-Komponente und die Grids) abgeleitet haben,
haben wir einen "kleinen" eigenen SQL-Editor als eigenes Fenster ins Programm eingebaut, da man dort auch nochmal alles mit den endgültigen Komponenten in einer Grundkonfiguration testen kann, ohne überall in den Oberflächen "blind" rumexperimentieren zu müssen.

jobo 27. Apr 2021 20:50

AW: Datenbank Abfrage über 2 Tabellen
 
Welcher der nächste Datensatz ist(wo er bei .next hinspringt) hängt nur von Deiner Order By Clause ab. Die gesamte Ergebnismenge wird bei Dir nach timestamp sortiert. Leider ist das Statement so gebaut, dass man nicht erkennen kann, aus welcher Tabelle die Spalte timestamp stammt.

Eine SQL Ergebnismenge verhält sich nicht wie ein Master Detail Datasource Beziehung in Delphi, wo 2 separate Datenmengen automatisch aktualisiert werden, je nach definierter Beziehung und Navigation.

Da niemand Dein Datenmodell kennt, sind die Fragen auch nicht treffend zu beantworten. Es gibt verschiedene Beziehungsmöglichkeiten und noch verschiedenere Datenbefüllungen in Deiner konkreten Datenbank.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:41 Uhr.
Seite 2 von 2     12   

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