myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Datentechnologien » [Gelöst] Wie mache ich meine Datenbank-Implementierung unabhängig?
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

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

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
pollito pollito ist männlich
myCSharp.de-Mitglied

avatar-3521.gif


Dabei seit: 26.02.2010
Beiträge: 181
Entwicklungsumgebung: VS2019, Team Developer 6.2


pollito ist offline

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

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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:

C#-Code:
SQLBaseConnection con = new SQLBaseConnection();

C#-Code:
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

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von pollito am 08.01.2021 17:16.

08.01.2021 12:40 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
david.m
myCSharp.de-Mitglied

Dabei seit: 02.06.2013
Beiträge: 99


david.m ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.
08.01.2021 12:57 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
pollito pollito ist männlich
myCSharp.de-Mitglied

avatar-3521.gif


Dabei seit: 26.02.2010
Beiträge: 181
Entwicklungsumgebung: VS2019, Team Developer 6.2

Themenstarter Thema begonnen von pollito

pollito ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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

Schönes Wochenende!

René
08.01.2021 13:05 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Abt
myCSharp.de-Team

avatar-4119.png


Dabei seit: 20.07.2008
Beiträge: 14.471
Herkunft: BW


Abt ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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.
08.01.2021 13:53 Beiträge des Benutzers | zu Buddylist hinzufügen
pollito pollito ist männlich
myCSharp.de-Mitglied

avatar-3521.gif


Dabei seit: 26.02.2010
Beiträge: 181
Entwicklungsumgebung: VS2019, Team Developer 6.2

Themenstarter Thema begonnen von pollito

pollito ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Zitat von Abt:
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.
08.01.2021 16:09 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
BerndFfm BerndFfm ist männlich
myCSharp.de-Team

avatar-3299.jpg


Dabei seit: 20.01.2006
Beiträge: 3.633
Entwicklungsumgebung: Visual Studio 2015
Herkunft: Frankfurt a.M.


BerndFfm ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Schau auch hier :

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

Kapitel 11 "Datenbankunabhängige Programmierung"

Grüße Bernd
08.01.2021 19:13 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
pollito pollito ist männlich
myCSharp.de-Mitglied

avatar-3521.gif


Dabei seit: 26.02.2010
Beiträge: 181
Entwicklungsumgebung: VS2019, Team Developer 6.2

Themenstarter Thema begonnen von pollito

pollito ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Nochmals vielen Dank an euch alle! Eure Tipps haben mir weiter geholfen.
LG
René
14.01.2021 16:23 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
Antwort erstellen


© Copyright 2003-2021 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 23.01.2021 14:07