Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Grundlegende Vorgehensweise bei Client/Server: Master/Detail (https://www.delphipraxis.net/57387-grundlegende-vorgehensweise-bei-client-server-master-detail.html)

Icarus666 20. Nov 2005 15:44

Datenbank: Firebird • Version: 1.5 • Zugriff über: ZEOS

Grundlegende Vorgehensweise bei Client/Server: Master/Detail
 
Ich will Firebird 1.5 als Client/Server zum Aufbau einer DVD-Datenbank verwenden. Ich bin mir allerdings bei der grundlegenden Vorgehensweise etwas unschlüssig.

Als Beispiel die Auswahl der Untertitel pro DVD. Ich habe folgende 3 Queries erstellt:

Query 1:
Name: QueryDVD
SQL: "SELECT * FROM dvd"
CachedUpdates: True
RequestLive: True
Verbunden mit einem UpdateSQL.

Query 2:
Name: QueryUntertitel
SQL: "SELECT * FROM dvduntertitel WHERE (dvd_id = :dvd_id)"
CachedUpdates: True
RequestLive: True
Verbunden mit einem anderen UpdateSQL.
Der angegebene Parameter wird in QueryDVDAfterScroll auf die Richtige DVD-ID gesetzt

Query 3:
Name: QueryLang
SQL: "SELECT * FROM sprachen"
CachedUpdates: False
RequestLive: False

Ich will eine DBGrid für die Anzeige/Hinzufügen/Ändern/Löschen von Untertiteln verwenden.
Zuerst wollte ich QueryUntertitel und QueryLang mit einem Inner Join verknüpfen. Leider erhalte ich im DBGrid dann keine Drop-Down-Liste, um den Untertitel einfach ändern zu können.
Stattdessen habe ich die SQL-Ausdrücke von oben verwendet und für QueryUntertitel alle Felder als persistente Felder hinzugefügt und zusätzlich ein Feld sprache als Lookup mit LookupDataSet QueryLang hinzugefügt.

Ist meine Vorgehensweise grundsätzlich richtig, auch in Hinblick auf Performance, oder hat jemand einen anderen Vorschlag?

Jelly 20. Nov 2005 15:50

Re: Grundlegende Vorgehensweise bei Client/Server: Master/De
 
Zitat:

Zitat von Icarus666
Stattdessen habe ich die SQL-Ausdrücke von oben verwendet und für QueryUntertitel alle Felder als persistente Felder hinzugefügt und zusätzlich ein Feld sprache als Lookup mit LookupDataSet QueryLang hinzugefügt.

Würd ich auch so machen, da du ja sicherlich keine 3 Millionen Sprachen definiert hast. Das Transfervolumen bleibt also immer schön klein.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:58 Uhr.

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