Entschuldigt die schlechte und sicher falsche Einordnung der Datenbank und Zugriffsart, aber ich weiß nicht was ich da angeben soll ^^ Hab mit Datenbanken nicht so viel zu tun.
Hintergrund:
Ich arbeite gerade an einer kleinen Kunden und Rechnungsverwaltung. Diese besteht aus den Tabellen Kunden, Rechnungen und Leistungen.
Jede Leistung hat eine RNr und ist somit einer Rechnung zuordenbar und jede Rechnung wiederum hat eine KNr für die Identifikation zum Kunden.
Ich habe schon Beim Programmieren viele Kapitel von Büchern und Tutorials über Datenbankeneinstieg gelesen, aber immer wenn ich dann selbst mal eine Anwendung mit DBs schreibe, stellen sich mir nun einige Fragen:
Zitat:
1. Ist wirklich ein Datenmodul für alle Datenbankzugriffskomponenten empfehlenswert?
Ich verliere immer leicht den Überblick, wenn sich so viele Kompos auf so einem Datenmodul befinden. Ich weiß nachher nicht mehr welche Tables, DataSources und Querys zu welchem Formular, welcher Abfrage usw. gehören. Obwohl ich meinen Komponenten versuche aussagekräftige Namen zu geben.
Zitat:
2. Ist es gut für die gesamte Anwendung (abgesehen von Abfragen) nur eine einzige Table und DataSource-Komponente pro Tabelle zu verwenden? In meinem Fall eben die drei für K, R und L?
Ich stelle mir das eigentlich so vor, z.B. für die Kundendatenbearbeitung gibt es ein Formular, welches seine Table oder Querykompo und DataSources hat und dann quasi recht modular aufgerufen werden kann, den Eintrag in der
DB per Locate o.ä. ansteuert und bearbeiten kann (so wären bspw. auch mehrere Instanzen des Formulars möglich). Aber wenn ich dann etwas an der
DB ändere, bekommen das die anderen Tables ja nicht so ohne weiteres mit?!
Zitat:
3. Wenn ich die Kompos auf einem Datenmodul platziere habe ich immer so ein schlechtes Gewissen, wenn ich dann in deren Ereignissen direkt auf eine global deklarierte Form (wie z.B. das Hauptformular oder bspw. das Kundendatenformular von 2.) zugreife. denn wenn ich wirklich den Umbau machen würde, dass das Kundenform nur instantiiert wird, wenn es gebraucht wird, würde das mit den Ereignissen von TTable und co auf dem Datamod ja nicht mehr klappen. Was ist also zu tun?
Zitat:
4. Ich habe eine Abfrage für Brutto und Netto Summe einer Rechnung. Diese ergibt sich ja aus der Summe der Leistungen (Felder Menge*Einheitspreis) die die jeweilige Rechnungsnummer haben. D.h. ich habe eine Abfrage für 2 Werte pro Rechnung. Ist es sinnvoll dafür eine eigene T(
ADO)
Query zu benutzen, die eben nur die beiden Felder liefert? (Die Abfrage ist mit Parametern :RNr versehen, so dass auch wirklich nur ein Datensatz zurückgegeben wird) Oder gibt es da noch andere Möglichkeiten? (Muss leider so geschehen, da ich die Daten in einen Treeview einlese, in dem zu jedem Kunden die Rechnungen aufgelistet sind und diese die Aufschrift mit Netto/Bruttosumme bekommen müssen
Die ersten drei Fragen hängen ja im Grunde genommen irgendwie zusammen. Mir fehlt nur jemand, der mir mal sagt, was sinnvoll oder gar professionell ist und wie man die Verteilung dieser Komponenten richtig organisiert. Das haben Tutorials und Bücher bisher leider noch nicht geschafft.
Mein Bestreben ist eben eine Modularisierung der einzelnen Formulare (Kundendaten, Rechnung+Leistungen) damit alles übersichtlich bleibt und man zur Not mal etwas ganz neues mit einem alten Tauschen kann. Ich mag nicht, wenn alles mit einander endlos verstrickt ist.
[EDIT]Tippfehler in Titel geändert