Autor Beitrag
sunnyandy
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Mo 03.09.07 08:37 
Hallo,

mein Programm soll mehrere Datenbanken unterstützen, zu aller erst auf jeden Fall den MS Sql Server.
Deshalb habe ich mich für die ADO-Schnittstelle entschieden, da ich die BDE auf keinen Fall mitgeben möchte.

Wenn ich nun z.B. die MySql oder Postgre-Sql Datenbank ebenfalls unterstützen möchte, wie gehe ich da vor? Für die MySql werden einem ja die Zeos-Komponenten empfohlen.
Muss ich für meine Absicht nicht ein gutes Design Pattern aussuchen, um einen Adapter oder so zu basteln?

Woher weiß ich, ob ich nicht die meisten Datenbanken mit der ADO ansteuern kann?

Hoffe, ihr könnt mir weiterhelfen, dankeschön!
Andy
sunnyandy Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 47



BeitragVerfasst: Mo 03.09.07 15:59 
Also ich habe bisher kein passendes Beispiel gefunden, wie man die Architektur aufbauen könnte.

Ich habe mir folgendes vorgestellt:

Es gibt eine abstrakte Klasse DB_Commands, in der erstmal alle Sql-befehle aufgelistet sind. Zum Beispiel gibt es Funktionen wie getAlleKunden oder getMitarbeiter(Suchtext: string).
Angenommen, die Sql-Syntax von getAlleKunden ist auf alle zu unterstützenden Datenbanken übertragbar, wird sie in dieser abstrakten Klasse implementiert.
Angenommen, die Sql-Syntax von getMitarbeiter muss etwas umformuliert werden für eine oracle-Datenbank, so erstelle ich eine neue Klasse OracleDB und erbe die Methoden aus DB_Commands. Nun würde ich getMitarbeiter überschreiben, da ich hier eine spezielle Lösung benötige.

Ich hätte also für jede Datenbank eine eigene Klasse, in der nur die Sql-Befehle implementiert sind, die nicht allgemein kompatibel sind.

Was haltet ihr von dieser Lösung? Ist es ein guter Ansatz? :)

Danke, Andy
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: Mo 03.09.07 16:29 
Passende Stichwörter wären Bridgepattern oder ORM.

_________________
Markus Kinzler.