none
MS SQL Compact und Datenbankdatei - Anfängerfragen RRS feed

  • Frage

  • Hallo,

    ich gehe meine ersten Schritte mit MS SQL Compact und schon stellen sich mir fragen, wie ich die Architektur der Software, besser das Handling mit einer Datenbank aufbaue.

    Mein Grundlegende Idee ist, dass ich eine Datenbank mit ausliefere, die die Grundlegenden Daten bereits beinhalten. Regelmäßige Updates werden ebenfalls nur über diese Datenbank ausgerollt.

    Der Nutzer soll die Möglichkeit bekommen, seine Datenbank zu erweitern mit eigenen Tabellen und Tabellenspalten. Daher muss ich irgendwie diese Banken zusammen syncronisieren. Wichtig ist mir, wenn der Nutzer seine privaten Daten löscht und der Datensatz ist in der Originaldatei enthalten, muss er diese Daten weiter verwenden (also eine Art zurücksetzen auf Standard).

    Sollte ich nun die Datenbank von Grund auf neu erstellen auf dem Rechner des Nutzers und mittels Insert/Alter Befehle die Tabellen aufbauen und prüfen? Wie ist überhaupt der übliche Weg? Wie sollte ich das mit den Updates handhaben? Wie erstelle ich überhaupt eine Komplett neue Datenbank ohne Visual Studio?

    Freitag, 1. August 2014 07:48

Alle Antworten

  • Hallo Marco,

    grundsätzlich sollte man in dem Fall die Stammdaten, die mit der Anwendung ausgeliefert werden in einer eigenen Datenbank vorhalten.

    Zu Anfang kann aus dieser Datenbank eine Kopie erstellen, die die "Benutzerdatenbank" wird. Dabei kann man die ganze Datei (SDF) kopieren. Die Ablage erfolgt dabei i. a. in einem Unterverzeichnis von CommonApplicationData oder ApplicationData.

    Werden später Änderungen an der Stammdatenbank vorgenommen, sollte man diese neu übertragen und damit die Benutzerdatenbank(en) aktualisieren - was auf INSERT / UPDATE / DELETE bei den Daten und CREATE / ALTER TABLE bei Schema-Änderungen hinausläuft.

    Um zu erkennen, ob ein Stammdatenabgleich notwendig ist, kann man eine Version-Spalte in einer zentralen Tabelle führen. Und darüber prüfen, ob die jeweiligen Benutzer-Datenbank auf dem gleichen Stand ist. Lässt ein Anwender eine (oder mehrere) Version(en) aus, so sollte der Aktualisierungmechanismus auch damit klar kommen - dabei aktualisiert man i. a. ausgelassenen Versionen sukzessive bis zur aktuellen.

    Vor jeder Aktualisierung ist dringend zu empfehlen, eine vollständige Kopie der Datenbank zu erstellen, falls dabei etwas schief geht. Da SQL Server Compact kein BACKUP kennt, kann das nur eine Dateikopie sein. Zu dem Zeitpunkt darf keine offene (SqlCeConnection) Verbindung existieren. (Sinnvoll ist es, dies unabhängig als Sicherungsmechanismus bereit zu stellen).

    Gruß Elmar

    Sonntag, 3. August 2014 17:37
    Beantworter