Einzelnen Beitrag anzeigen

barnti

Registriert seit: 15. Aug 2003
Ort: Mal hier mal da...
689 Beiträge
 
Delphi 7 Enterprise
 
#1

Dynamisches Datenbankinterface

  Alt 16. Jan 2004, 08:20
Hallo,
ich beschäftige mich seit einiger Zeit mit der Entwicklung eines DB-Interfaces. Ich benutze mysql und teste dafür zur Zeit die mysqlDAC. Ich versuche die Ansicht der Anwendung dynamisch aus der DB zu generieren. So habe ich z.B. eine Prozedut, die mir die TDBEdits generiert, wenn der Benutzer Daten einsehen, eingeben oder verändern möchte.
Um die Dateneingabe zu vereinfachen möchte ich für die Fremdschlüssel-Felder statt normalen TDBEdits TDBLookupComboBoxen bereitstellen. Ich dachte mir das folgendermaßen:

Wenn der Benutzer einen Datensatz in der DB abruft, werden erst die benötigten TDBEdits erzeugt und dem Datensatz entsprechend mit den zugehörigen Daten versehen. Klickt der Benutzer nun auf ein Editfeld dessen zugrundeliegendes Feld einem Fremdschlüssel entspricht, so soll das TDBEdit verborgen werden und statt dessen eine DBLookupComboBox sichtbar werden, die dem Datensatz entsprechend konfiguriert ist. So kann der Fremdschlüssel aus der verknüpften Tabelle gelesen und in den aktuellen Datensatz übernommen werden.

Mein Problem ist nun die Konfiguration dieser LookupCB. Um alle Attribute zu setzen brauche ich:

Datasource: Ok, ist die Tabelle die ich aktuell bearbeite

Datafield: Ok, identifiziere ich durch den Namen des zugehörigen Editfeldes

KeyField: Ok, ist wie Datafield, da es immer um Schlüssel-bzw Fremdschlüssel geht.

ListSource: ???

ListField: ???

Ich habe bisher keine befriedigende Lösung gefunden, wie ich die Listsource, ListField ermittle. Dafür benötige ich alle Fremschlüsselattribute der zu bearbeitenden Tabelle. Aber woher nehmen? Ich müsste also für jede Tabelle irgentwie die Fremdschlüssel bestimmen oder Speichern und das zugehörige ListField benennen...

Hat jemand von euch eine Idee, wie man das Problem angehen könnte? Lösungsvorschläge sind willkommen!

Gruß,

Barnti
  Mit Zitat antworten Zitat