Sqlite unterstützt eine
Schema-Version und eine
User-Version.
Da haben die Programmierer mal eine richtig gute Idee gehabt.
Mit der
Schema-Version kann deine Anwendung überprüfen, ob die Datenbank strukturiell neu genug ist.
Hier etwas Pseudecode:
Delphi-Quellcode:
if SchemaVersion < CURRENT_SCHEMA_VERSION then
MsgBox('Achtung: Datenbankstruktur ist zu alt! Weitermachen auf eigene Gefahr.')
else if SchemaVersion > CURRENT_SCHEMA_VERSION + 3 then
MsgBox('Achtung: Anwendungsprogramm könnte zu alt für die Datenbank sein.');
Die
User-Version kannst du für eigene Zwecke benützen.
Bei jedem Programmende zählt deine Anwendung die User-Version um Eins hoch und speichert diesen Wert in einer Ini-Datei oder Registry.
Sollte beim Programmstart eine Abweichung zwischen dem gespeicherten Wert und der aktuellen User-Version gibt es einen Hinweis an den Benutzer.
Ausserdem wird in einem Flag gespeichert, dass es eine Abweichung gegeben hat.
Bei gesetztem Flag muss die Anwendung am Ende fragen ob die Datenbank als aktiv gelten soll;
falls User mit "Nein" antwortet unterbleibt das Hochzählen der User-Version.