Einzelnen Beitrag anzeigen

urs.liska

Registriert seit: 6. Aug 2003
Ort: Freiburg
195 Beiträge
 
Delphi 6 Professional
 
#1

Komplexes Datensatzformular ohne DB-Controls

  Alt 11. Feb 2005, 22:26
Datenbank: Firebird • Version: 1.5 • Zugriff über: IBO, UIB, ZEOS (irrelevant)
Liebe DPler und DB-Experten,

ich möchte ein relativ komplexes Datensatzformular mit verschiedenen Master-Detail-Beziehungen programmieren, ohne datengebundene Steuerelemente zu verwenden (auf einige Threads hier in der DP hin).
Dazu hätte ich ein paar Fragen, wie das am günstigsten zu realisieren wäre.

1)
Ich denke mir, ich sollte für die Daten des Datensatzes eine Klasse erstellen anstatt die Daten direkt aus einer Datenmenge in die Steuerelemente einzulesen und beim Posten wieder aus den Steuerelementen in die Paramter der Datenmenge auszulesen.
So bin ich besser für Erweiterungen (z.B. der Feld- oder Datensatzvalidierung) gerüstet, die mit Sicherheit erforderlich werden. (Ich weiß nicht, ob es für die Frage eine Rolle spielt, aber: Für das SELECT und INSERT/UPDATE der ganzen Strukturen gibt es Stored Procedures, die die ganzen Joins regeln, so dass hier relativ wenig Aufwand für die Anwendung liegt)

Ist das richtig gedacht? Oder kann ich mir den Aufwand sparen?

2)
Auf dem Formular gibt es mehrere Master-Detail-Beziehungen.
Die Detaildatensätze haben ihrerseits eine gewisse Komplexität mit Lookup-Feldern, Detaildatensätzen oder auch n:n-Datensätzen.
Ist es sinnvoll, alle diese abhängigen Daten in verschiedenen Objekten zu speichern, die wiederum über array-Eigenschaften oder TList-en verwaltet zu werden, und dann am Ende bei einem allgemeinen Post-Event alle Daten (in der entsprechenden Reihenfolge) in die DB zu schreiben?
Oder ist es besser, die Detaildaten wirklich als Datensätze zu behandeln und jeweils direkt beim Wechsel des Detaildatensatzes in die DB zu schreiben und den nächsten Datensatz aus der DB einzulesen?
Das alles unter Berücksichtigung des Planes, später einmal mehrere Instanzen des Formulars gleichzeitig öffnen zu können.

3)
Später will ich ein Datensatzauswahlformular hinzufügen.
In diesem kann über diverse Sucheinschränkungen und ein Grid ein Datensatz zur Bearbeitung ausgewählt oder der Befehl zum Einfügen eines neuen Datensatzes gegeben werden.
Das Auswahlformular soll eine Liste geöffneter Datensatzformulare verwalten.
Dazu kann ich mir verschiedene Ansätze vorstellen:
a)
Die Datensatzliste enthält Instanzen des Datensatzformulars (s.o.). In dem Datensatzformular gibt es wiederum ein Objekt mit dem eigentlichen Datensatz (s. 1).
b)
Die Datensatzliste enthält Instanzen eines Datensatz-Objekts. Dieses beinhaltet neben den eigentlichen Daten-Strukturen und den erforderlichen Methoden ein Feld mit dem Formular.

Welcher der beiden Ansätze verspricht, weniger Komplikationen nach sich zu ziehen?
Ich kann mir nicht bis ins Letzte vorstellen, welche Konsequenzen die Vorgehensweisen für die Steuerung der Anwendung letztlich haben werden.

Für Kommentare und Meinungen bin ich dankbar
MfG
Urs
  Mit Zitat antworten Zitat