Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Mehrere DB Connections gleichzeitig (https://www.delphipraxis.net/208930-mehrere-db-connections-gleichzeitig.html)

cltom 30. Sep 2021 13:53

Datenbank: SQLite • Version: 3.36 • Zugriff über: ZEOS

Mehrere DB Connections gleichzeitig
 
Hallo,

eine Frage, die bestimmt schon gestellt und beantwortet wurde, sorry, ich hab gesucht, aber nicht so ganz gefunden, was ich meine.

Der Anwendungsfall ist einfach:

- DB-Abfrage eine SQLite-Datenbank mit ZeosDB (TZConnection, TZQuery, TDataSource, angezeigt in einem DBGrid)
- bei Klick auf einer der Zellen des DBGrid soll entsprechend die nächste Abfrage erzeugt werden.

Als Beispiel:
Die erste Abfrage ergibt eine Liste aller Messungen. Bei Click auf das DBGrid mit den Messungen sollen die Werte der gewählten Messung geholt werden (in ein anderes DBGrid*). Natürlich sollen die verfügbaren Messungen weiter angezeigt werden, sodass der Nutzer andere Messungen auswählen kann.

Brauche ich jetzt die ganze Kette von TZConnection, TZQuery, TDataSource doppelt, wenn die Datenbank die gleiche ist? Einfach nur die Datasource des DBGrids ändern klappt klarerweise nur bedingt, weil dann das erste DBGrid ja die Verbindung verliert. Löst man das dann echt so mit mehreren TZConnections, etc.?

*Und dann in der Folge: gibt es eine elegantere Variante, als die Mess-Daten in ein DBGrid zu holen? Ich brauch die dann ja letztlich in einem Objekt. Gibt es andere, nicht visuelle Komponenten, um die Daten zu holen?

Danke!

Jumpy 30. Sep 2021 14:22

AW: Mehrere DB Connections gleichzeitig
 
Du brauchst nur eine TZConnection, aber eine weitere TZQuery und TDataSource für das 2. Grid.

Die nicht visuelle Komponente in der du in deinem Szenario die Daten hälst ist ja die Query. Das Grid ist ja nur zur Anzeige. Du kannst also mit den Daten in der Query auch noch was anderes machen, z.B. sie in ein passendes Objekt übertragen, mit dem du dann was machst.

MyRealName 30. Sep 2021 14:46

AW: Mehrere DB Connections gleichzeitig
 
Das hört sich eher nach einer Master/Detail-Anzeige an. Brauchst nur eine 2. Query mit DataSource welche Du mit dem 2. Grid verbindest und dann zwischen den beiden Queries musst Du eine Master-Detail-Verbindung herstellen

cltom 30. Sep 2021 15:09

AW: Mehrere DB Connections gleichzeitig
 
Zitat:

Zitat von Jumpy (Beitrag 1495597)
Du brauchst nur eine TZConnection, aber eine weitere TZQuery und TDataSource für das 2. Grid.

Die nicht visuelle Komponente in der du in deinem Szenario die Daten hälst ist ja die Query. Das Grid ist ja nur zur Anzeige. Du kannst also mit den Daten in der Query auch noch was anderes machen, z.B. sie in ein passendes Objekt übertragen, mit dem du dann was machst.

Danke Dir! :thumb:

ad zweite Abfrage:
Das mit dem zweiten Grid funktioniert schon! Sehr schön, danke!

ad Query: stimmt natürlich, klar. Ich hab bis dato immer die Felder ins DBGrid geschrieben und dort via FieldByName abgeholt. Ist aber natürlich ein unnötiger Umweg.

cltom 30. Sep 2021 15:10

AW: Mehrere DB Connections gleichzeitig
 
Zitat:

Zitat von MyRealName (Beitrag 1495598)
Das hört sich eher nach einer Master/Detail-Anzeige an. Brauchst nur eine 2. Query mit DataSource welche Du mit dem 2. Grid verbindest und dann zwischen den beiden Queries musst Du eine Master-Detail-Verbindung herstellen

Danke Dir. Ich werd mal mit dem Stichwort Master-Detail-Verbindung auf die Suche gehen. Im Grunde klappt es aber mit der 2. Query und der 2. Datasource.

Danke!!

MyRealName 1. Okt 2021 10:16

AW: Mehrere DB Connections gleichzeitig
 
Zitat:

Zitat von cltom (Beitrag 1495601)
Zitat:

Zitat von MyRealName (Beitrag 1495598)
Das hört sich eher nach einer Master/Detail-Anzeige an. Brauchst nur eine 2. Query mit DataSource welche Du mit dem 2. Grid verbindest und dann zwischen den beiden Queries musst Du eine Master-Detail-Verbindung herstellen

Danke Dir. Ich werd mal mit dem Stichwort Master-Detail-Verbindung auf die Suche gehen. Im Grunde klappt es aber mit der 2. Query und der 2. Datasource.

Danke!!

Bei Master/Detail brauchst Du eh eine 2. Query und Datasource, aber das Scrolling kann der automatisiert anhand von Keyfields übernehmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:34 Uhr.

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