Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Dynamisches Datenbankinterface (https://www.delphipraxis.net/14810-dynamisches-datenbankinterface.html)

barnti 16. Jan 2004 08:20


Dynamisches Datenbankinterface
 
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

Robert_G 16. Jan 2004 08:38

Re: Dynamisches Datenbankinterface
 
Ich habe keine Ahnung von mySQL, ich kann dir deshalb nur wage Empfehlungen geben.

Irgendwo wird auch mySQL Strukturdaten wie foreign keys, Spaltendefinitionen, ... ablegen.
Suche nach solchen Tabellen. Dann kannst du darauf Abfragen zu deiner Tabellen machen, aus deren Ergebnissen du dann deinen SQL-Code generierst.

Hoffe, ich konnte dir helfen...

trifid 16. Jan 2004 08:50

Re: Dynamisches Datenbankinterface
 
Hallo,

baue eine DataDictionary (Stichwort) ((DD)) dafür auf, wie Du die Tabellen, Beziehungen und Felder beschreibst.
Dann hat eine ComboBox einen Namen und dahinter sind Tabellen, Felder, Farbe, Property, etc.
Ein DD ist eine Ansammlung von Tabellen die wiederum Tabellen beschreibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 Uhr.

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