Eine Anwendung mit mehreren Datenbanken

  • VB.NET
  • .NET (FX) 4.0

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    Eine Anwendung mit mehreren Datenbanken

    Hallo zusammen,

    ich habe eine Anwendung entwickelt, welche mit einer MySQL-Datenbank verbunden ist. Nun ist es mein Ziel dem Anwender beim Start der Anwendung die Entscheidung zu überlassen, ob er das Programm im Mehrarbeitsplatzmodus (MySQL) oder in Einzelanwendermodus (SQLITE) starten möchte. Hat von euch jemand eine Idee wie ich dieses Problem lösen könnte? Habt ihr so etwas schonmal in einem Programm realisiert?

    Grüße
    Jörg

    babsitz schrieb:

    ob er das Programm im Mehrarbeitsplatzmodus (MySQL) oder in Einzelanwendermodus (SQLITE) starten möchte.
    Das ist möglich, erfordert aber ein sehr ungewohntes und sehr umsichtiges Programmieren.
    MySql und SQLite bringen jeweils eigene Klassen zur DB-Kommunikation mit, du kannst also nicht mit einem MySqlAdapter Daten von einer SqLite-Db abrufen.
    Zum Glück erben die DBS-abhängigen Kommunikations-Klassen alle von im Framework vorgegebenen abstrakten Basisklassen.
    Also musst du dein Proggi so designen, dass alle Kommunikation nur mittels Ansprache als Basisklasse erfolgt.
    Nur dann kannst du im Startup entweder die MySqlProviderFactory angeben, die dir dann MySql-Kommunikations-Objekte generiert, bzw. die SQLiteProviderFactory - die dann SQLite-Kommunikation ermöglicht.
    Ich hab im weitesten Sinne ähnliches mal veröffentlicht: DbGenerator
    Der kann die Tabellenstruktur eines Datasets in Datenbanken verschiedenster Provider übertragen.
    Auch die DBExtensions sind auf diese Weise DBS-unabhängig designed.

    Achso: Und dann können immer noch Inkompatiblitäten der unterschiedlichen SqlDialekte auftreten. 90% wird zwar identisch sein, aber die restlichen 10% verursachen erheblichen Aufwand (s. DBGenerator), und alle Inkompatiblitäten komplett unter einen Hut zu kriegen, ist so gut wie ausgeschlossen.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()