Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Oberfläche für dynamische Datenbankabfrage (https://www.delphipraxis.net/152679-oberflaeche-fuer-dynamische-datenbankabfrage.html)

Mysterio08 1. Jul 2010 20:02

Oberfläche für dynamische Datenbankabfrage
 
N'Abend,

ich habe eine Datenbank mit drei Tabellen und knapp 100 Feldern. Soweit läuft die Datenbank einwandfrei.
Nun muss ich nur noch ein (sehr großes) Problem lösen: Natürlich sollen Abfragen durchgeführt werden können, jedoch habe ich keine Ahnung, wie ich das visuell darstellen soll, weil ich darin keine Erfahrung habe - ~100 Felder überschreitet dann doch das Übliche...

Ich habe bereits an ein sich dynamisch erweiterndes Formular gedacht, bei dem dann die Komponenten zur Laufzeit erstellt werden. Aber das Programm müsste ja schon fast "intelligent" sein (oder ich unglaublich viele Fälle programmieren), damit es auch optisch ansprechend aussieht. Deswegen habe ich mir diese Idee aus dem Kopf geschlagen und an etwas anderes gedacht:

Ich persönlich finde es von Microsoft sehr gut gelöst, so wie man es in Access vorfinden kann. Man hat eine Tabelle mit DropDown-Menüs, kann "und"/"oder"-Bedingungen eingeben, Funktionen verwenden ... ihr kennt das. Ist das denn zu realisieren? Gibt es vielleicht solch eine Komponente, weil wenn nicht, dann wird das ja auch sicherlich sehr viel Arbeit, eine zu entwickeln!

Hat jemand mit sowas schon Erfahrungen gemacht?-Bestimmt. Wie habt ihr es gelöst/würdet es lösen? Für neue Vorschläge bin ich offen, weil ich keine mehr habe.

mfg. Mysterio08

mkinzler 1. Jul 2010 20:08

AW: Oberfläche für dynamische Datenbankabfrage
 
100 Felder schreien nach Normalisierung

http://www.activequerybuilder.com/product_vcl.html
http://www.fast-report.com/de/produc...y-builder.html / http://www.fast-report.com/de/downlo...nQBuilder.html

Bummi 1. Jul 2010 20:14

AW: Oberfläche für dynamische Datenbankabfrage
 
Ich habe eine Komponent an welche eine Adoconnction gehängt wird.
Im Oberen Bereich 3 Reiter für Tabellen,Bedingungen und Sortierung.
Aus der Liste können Tabellen per Drag and Drop auf eine Arbeitsfläche gezogen werden. Für die Tabellen werden Checklistboxen mit Feldern in eine verschieb/vergrößerbaren Rahmen dargestellt, mehrere per Drag and Drop zwischen Feldern von jeweils 2 Tabellen lassen sich Joins ziehen und definere left/full.
Felder in die Bedingungsauswahl ziehen erzeugt ein Abfragefenster mir eingabemöglichkeiten.
An die Komponente kann ein Memo oder ein Synedit angehängt werden wo dann ständig die SQL's angepasst werden.

Getestet unf bewährt bisher mit SQL-Server und Access

Bummi 1. Jul 2010 20:35

AW: Oberfläche für dynamische Datenbankabfrage
 
Ich habe es gerade in der Codelibrary unter SQLCreator
eingestellt.

Mysterio08 2. Jul 2010 08:36

AW: Oberfläche für dynamische Datenbankabfrage
 
@ mkinzler: Natürlich habe ich das Datenbankmodell normalisiert! Wäre ja schlimm, wenn nicht...

@Bummi: Die Komponente gefällt mir optisch sehr gut - zumindest was ich auf den Screenshots gesehen habe - aber auch ich kann sie nicht nutzen, aber siehe hier, der vierte Post: "... es fehlt aber die Unit 'Templatep'".
Edit:/ Hat sich in der Zwischenzeit erledigt!

mkinzler 2. Jul 2010 08:38

AW: Oberfläche für dynamische Datenbankabfrage
 
Zitat:

@ mkinzler: Natürlich habe ich das Datenbankmodell normalisiert! Wäre ja schlimm, wenn nicht...
Und dann kommst du immer noch auf 100 Felder? :shock:

Mysterio08 2. Jul 2010 12:41

AW: Oberfläche für dynamische Datenbankabfrage
 
Zitat:

Zitat von mkinzler (Beitrag 1033004)
Zitat:

@ mkinzler: Natürlich habe ich das Datenbankmodell normalisiert! Wäre ja schlimm, wenn nicht...
Und dann kommst du immer noch auf 100 Felder? :shock:

Die mir bekannte Definition von "Datennormalisierung": Datennormalisierung bedeutet das Aufteilen einer Tabelle in eine Master- und verschiedene Teiltabellen, wobei diese Tabellen in Relationen gesetzt werden, sodass auf alle Daten zugegriffen werden kann.

Das schließt ja nicht aus, dass ich sehr viele Daten zu speichern habe!

mkinzler 2. Jul 2010 12:44

AW: Oberfläche für dynamische Datenbankabfrage
 
Normalisierung heisst, dass alle Felder vollständig vom PK abhängen. Normalisiert man bis zu 3. ( 3.5 ten) Normalform erhält man normalersweise deutlich kleinere Tabellen.
Sind den immer alle Felder gefüllt?
Gibt es Wiederholgruppen?

Mysterio08 2. Jul 2010 14:09

AW: Oberfläche für dynamische Datenbankabfrage
 
"Gibt es Wiederholgruppen?" - Nein, natürlich nicht, Datenradendunz und die daraus resultierende Inkonsistenz habe ich unterbunden.
Wie gesagt, es gibt viele Daten zu speichern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 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