Einzelnen Beitrag anzeigen

Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#1

Datenbankanwendung GUI

  Alt 18. Dez 2011, 20:50
Datenbank: Firebird • Version: 2.5 • Zugriff über: Devart IBC
Hallo zusammen,

da ich in nächster Zeit ein größeres datenbankbasiertes Projekt starten möchte, wollte ich mal mit einer kleinen Anwendung starten, um mich mit dem best möglichen Design vertraut zu machen. Das ist auch der Grund, warum ich für das beschriebene Projekt eine Firebird-Datenbank verwenden möchte, auch wenn es etwas übertrieben scheint. Außerdem liegen die Daten bereits in einer Firebird-Datenbank...

Das Programm soll eine kleine Verwaltung der Seriennummern meiner erworbenen Software darstellen. Die DB verfügt ganz einfach über 2 Tabellen: TAB_SOFTWARE mit allen Stammdaten sowie eine Tabelle TAB_ATTACHMENTS für etwaige Key-Files. Also ganz einfach gehalten, die Datensätze in TAB_ATTACHMENTS sind über einen Foreignkey mit TAB_SOFTWARE verbunden. So weit so gut...

Nun zur eigentlichen Frage: Wie würdet ihr die Datensätze in die Anwendung einlesen? Es gäbe ja verschiendene Möglichkeiten

1. Am einfachsten wäre es, datenbanksensitive Komponenten zu verwenden und zwei TTable-Komponenten, in welchen ich über eine Master-Detail-Beziehung die Datensätze der Tabelle TAB_ATTACHMENTS filtere. Ich arbeite jedoch nicht so gerne mit diesen Komponenten, da ich das Verhalten der Anwendung lieber selber steuern möchte und mittels TQuery's für Datenbankaktionen arbeite. Außerdem scheint mit der Netzwerktraffic am höchsten zu sein (vor allem, wenn die Anwendung auch über das Internet vertretbar schnell laufen soll...)

2. Momentan mache ich es jedoch so, dass ich zunächst mittels SELECT die ID sowie die Namen der Programmen in ein Grid einlese (nicht datensensitiv!) - quasi als alpahbetische Übersicht. Bei klick auf die Zeile wird über ein weiteres SELECT die Detailinformation des ausgewählten Programmes (Seriennummer, Registriername, Homepage etc.) über die ID eingelesen und über Labels angezeigt. Im gleichen Zug werden in einem weiteren Grid die Attachments - falls vorhanden - angezeigt (auch mittels SELECT ermittelt). Dieses Vorgehen scheint mir am praktikabelsten und mit dem geringsten Traffic zu sein.

3. Habe schon viel in dem Zusammenhang über TClientDataset gelesen, allerdings bislang nicht wirklich verstanden. Sollten diese in der Lösung wichtig sein, dann muss ich mich nochmals damit auseinandersetzen.

Oder ganz allgemein, wie würdet ihr das Design der Anwendung machen bzw. das Einlesen der Datensätze (Übersicht -> Detailinformationen) bewerkstelligen.

Liebe Grüsse,
Michael
Michael Kübler
  Mit Zitat antworten Zitat