Hallo,
ich habe mal eine grundsätzliche Frage zur Gestaltung einer mehrschichtigen Anwendung im Praxisfall.
Ich möchte also ein Programm entwickeln, indem die
GUI-/Datenverarbeitungs-/
DB-Logik getrennt von einander sind.
Meine Idee war (ganz grob und aufs Relevante gekürzt):
1.
Unit (
DB-Logik):
Diese
Unit kommuniziert direkt mit dem
DB-Server, schickt die
SQL-Statements etc ab. Stellt also Methoden und Funktion zur Verfügung für die Kommunikation mit dem
DB-Server.
2.
Unit (Datenverarbeitung):
Diese
Unit schickt das
SQL-Statement an die 1.
Unit und erhält ein Ergebnis (ResultSet). Nun stelle ich mir das so vor, dass mein Programm für die einzelne Datenbank-Inhalte Objekte/Klassen/Records zur Verfügung stellt. Beispiel (!!) :
Code:
SQL-
query: SELECT * FROM Debitoren WHERE id=123;
Nun packt diese
Unit das Ergebnis in ein Record:
Delphi-Quellcode:
TKunde=record
sKundenNr:String[50];
sName:String[50];
.
.
.
end;
Delphi-Quellcode:
var BspKunde:TKunde
BspKunde.sKundenNr=ResultFromSQL.GetStringByName('Kundennummer')
3.
Unit (
GUI):
Diese
Unit holt aus der 2.
Unit das Objekt/Record etc. und füllt die
GUI damit. Gleichzeit wird beim Abspeichern der Daten wieder ein Object/Record (vom Typ TKunde) gefüllt und an die 2.
Unit übergeben (diese wiederum wandelt das Ganze in einen
SQL-Statement [insert] um und schickt das an die 3.
Unit, welches dann die
DB-Kommunikaton auslöst.)
Ich hoffe man versteht, was ich meine.
Ist dieser Weg sauber und in Ordnung oder wie würdet Ihr es machen?
Viele Grüße