
SQLITE für Windows 95
« | 19 Nov 2023 | »SQLite ist schon eine tolle Software … weil sie so “kompatibel” ist.
Wenn es darum geht ein Datenformat zu haben, das man über Zeiten hinweg
nutzen kann, denkt man nicht gleich an eine SQL-Datenbank.
Aber wie sich zeigt, lässt sich diese Software auch auf 25 Jahre alten
Systemen einsetzen.
SQLite
ist schon lange ins GATE
Framework integriert und von Zeit zu
Zeit aktualisiere ich meinen Fork mit dem “latest-greatest” Abkömmling.
Dabei habe ich mir wieder die Frage gestellt, wie weit ich mit SQLite in die Vergangheit reisen könnte. Und zumindest für die Windows Welt, konnte ich das schnell austesten.
SQLite unter NT4 und Win98
Wenn man ein paar Compiler-Flags richtig einstellt, lässt sich SQLite mit Visual Studio 2005 kompilieren und dessen Output läuft dann unter NT4 wie auch unter Windows 98.
Natürlich muss man für Win98 mit der ANSI API arbeiten und auf einige erweiterte Datenzugriffsmöglichkeiten verzichten, doch diesen Weg kann man leicht aus den Originalquellen beschreiten.
Windows 95 ist anders
Wer denkt zwischen Win95 und 98 gäbe es keine funktionalen Unterschiede,
der irrt.
Denn eine Funktion fehlt an vielen Enden: InterlockedCompareExchange()
Das Thema hatte ich im GATE-Framework intern schon und leitete damals einen Workaround bei mir ein … doch in Fremdcode geht das nicht so einfach.
Ich konnte jedoch das Ergebnis von InterlockedCompareExchange
in einer
eigenen Funktion provisorisch nachbauen (mit InterlockedExchange
) und
dann (per Makro von CMake
aus) die originalen Aufrufe von
InterlockedCompareExchange
auf meine Funktion umleiten.
Zum Kompilieren war Studio 2003 notwendig, wofür auch noch eine kleine Änderung am Buildscript notwendig war … doch am Ende konnte SQLite auch für Windows 95 kompiliert und dort auch ausgeführt werden.
Fazit
Wenn es also ein Datenformat gibt, das ich heute im Jahr 2023 genau so nutzen
kann, wie damals im Jahr 1995, dann ist das SQLite
.
Ich bin sicher, dass es keine andere freie Datenbanksoftware gibt, die ihr Datenformat und auch ihren Programmcode so gestaltet hat, dass man Jahrzehnte damit überbrücken kann. Im besten Fall bekommt man kompatible Upgrades auf die neueste Version, die nur unter der neuesten Umgebung läuft.
Daher erneut: Ein Hoch auf SQLite!