Laden...

[Gelöst] Wie mache ich meine Datenbank-Implementierung unabhängig?

Erstellt von pollito vor 3 Jahren Letzter Beitrag vor 3 Jahren 640 Views
pollito Themenstarter:in
314 Beiträge seit 2010
vor 3 Jahren
[Gelöst] Wie mache ich meine Datenbank-Implementierung unabhängig?

verwendetes Datenbanksystem: <SQLBase 11.x und 12.x, MySQL>

Ich muss eine Anwendung primär für die oben angegebenen Versionen von SQLBase entwickeln. Dadurch stehen mit Technologien wie z. B. EF nicht zur Verfügung, denn EF steht erst mit der Version 12.3 zum ersten Mal zur Verfügung, wir jedoch ältere Versionen unterstützen müssen.

Nun stehen uns ODBC, OLEDB, ADO und .NET Data Provider zur Verfügung. Dazu habe ich ein paar Fragen:

Bisher habe ich in Verbindung mit dieser Datenbank lediglich den .NET Data Provider benutzt. Das funktioniert auch gut. Aber weil eventuell auch MySQL und vielleicht auch der SQLServer irgendwann benutzt werden sollten, frage ich mich, ob im Hinblick auf den Sourcecode nicht besser wäre, auf OLEDB oder ODBC zu setzen – wenn ich das richtig sehe, müsste ich im Idealfall lediglich die Verbindungszeichenkette ersetzen und ich könnte meine Anwendung mit einem anderen Datenbanksystem ausführen.

Beim .NET Data Provider ist zwar die Funktionalität mehr oder weniger normiert, die Methoden der einzelnen Datenbanksystemen heißen jedoch anders wie unten im Beispiel:

SQLBaseConnection con = new SQLBaseConnection();
MySqlConnection con = new MySqlConnection();

Das würde bedeuten, entweder bedingte Kompilierung, Source doppeln oder einen selbst entwickelten Wrapper nutzen (ich würde das wahrscheinlich so realisieren).

Wie sehen die Experten das? Vielleicht drehe ich mich wieder nur im Kreis und sehe den Wald vor lauter Bäumen nicht.

Vielen Dank und ein gutes Neues nachträglich!

Grüße

René

D
152 Beiträge seit 2013
vor 3 Jahren

Bei allen hat man das Problem das sich die SQL Dialekte leicht unterscheiden, unabhängig ob man nun
ODBC, OLEDB, ADO und ADO.NET verwendet.

Verwende nicht die direkten Implementierungen der ADO.NET Providern, sondern die Abtraction aus dem Namensraum System.Data.Common
Und für die Erstellung entsprechende die Methoden der Klassen DbProviderFactory und DbProviderFactories.

pollito Themenstarter:in
314 Beiträge seit 2010
vor 3 Jahren

Vielen Dank! Genau das richtige fürs Wochenende... 😦 Es ist aber genau das, was ich suchte und nicht kannte.

Schönes Wochenende!

René

René

16.807 Beiträge seit 2008
vor 3 Jahren

Dazu kannst Du Dir auch einfach mal die Basics von ADO.NET anschauen.
Gerade die Architektur, die Du hier haben willst, ist darin gut dokumentiert und liefert Dir eigentlich alle Basics, die Du brauchst.

pollito Themenstarter:in
314 Beiträge seit 2010
vor 3 Jahren

Gerade die Architektur, die Du hier haben willst, ist darin gut dokumentiert und liefert Dir eigentlich alle Basics, die Du brauchst.

Auch dir vielen Dank! Es wird gewiss nicht langweilig übers Wochenende.

René

3.825 Beiträge seit 2006
vor 3 Jahren

Schau auch hier :

http://download.seven-c.de/files/DatenbankenHowTo.htm#10

Kapitel 11 "Datenbankunabhängige Programmierung"

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

pollito Themenstarter:in
314 Beiträge seit 2010
vor 3 Jahren

Nochmals vielen Dank an euch alle! Eure Tipps haben mir weiter geholfen.
LG
René

René