Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Ablage der SQL-Statements (https://www.delphipraxis.net/98666-ablage-der-sql-statements.html)

Andreas H. 30. Aug 2007 20:42

Re: Ablage der SQL-Statements
 
Ach sch....

ich glaub, ich speichere die SQLs doch in den Komponenten. Ist doch übersichtlicher... :coder:

mkinzler 31. Aug 2007 06:29

Re: Ablage der SQL-Statements
 
Zitat:

ich glaub, ich speichere die SQLs doch in den Komponenten. Ist doch übersichtlicher...
Kann ich mir nicht vorstellen.
Eine weitee Alternative wäre die Verwendung von mehreren Datenmodulen.

Bernhard Geyer 31. Aug 2007 06:40

Re: Ablage der SQL-Statements
 
Oder die Verwendung einer abstrakteren DB-Schnittstelle (Bridge-Pattern läßt grüßen). Z.b. Methoden der Art GetAllCustomer, GetCustomerById, ... und erst in der für jeder DB vorhandenen Implementierungsunit wird die passende SQL-Anweisung zusammengebaut. Damit würde man einen DB-Unabhängiger Ansatz ähnlich (N)Hypernate/ECO realisieren.

mkinzler 31. Aug 2007 06:42

Re: Ablage der SQL-Statements
 
Man könnte den DB-spezifischen Code auch durch ORM kapseln.

Sir Rufo 31. Aug 2007 07:44

Re: Ablage der SQL-Statements
 
Hallo Andreas,

habe gerade mal kurz in deinen Quellcode geschaut ...

was mir sofort auffiel, war das die GUI-Elemente und die DB-Elemente bei dir in einem Topf liegen (DocsChild.pas).
Nicht nur dass dies völlig gegen ein sauberes Programmierkonzept läuft (Ein-/Ausgabe von der Verarbeitung trennen), sondern es wird dich gerade dann die "Torte im Auge treffen" wenn du unterschiedliche Datenbanken ansteuern möchtest.

Trennst du diese Teile auf, so kannst du die entsprechenden (Verarbeitungs-)Units an die jeweilige Datenbank anpassen und bei Bedarf mitkompiliern und so unterschiedliche Versionen von deinem Programm erstellen (MySQL-, Oracle-, etc. Version).

Denkbar wäre ja auch die Kapselung in einer DLL und diese dann beim Programmstart dynamisch einbinden (welche DB hätten Sie denn gerne).

Zudem kann bei so einer Trennung auch die Programmierung sehr schön auf mehrere Personen verteilt werden (GUI, DB1, DB2 ... )

cu

Oliver

(PS: Ich weiss das so gut, weil ich noch einige Alt-Projekte hier rumliegen habe, wo ich das nicht beachtet hatte und jetzt muss ich diese anpassen - :mrgreen: )


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:50 Uhr.
Seite 2 von 2     12   

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