Hallo bfuerchau.
Du benennst eine eigene Tabelle "DBInfo" - ich nenne sie mal "Entwicklung". Ja, das sehe ich auch als eine Möglichkeit an (wo es passt).
Ich komme kurz am besten noch einmal auf den Ausgangspunkt dieses Thema zurück, damit er nicht aus dem Fokus gerät:
Unbestritten ist, dass nach einer (Minimal)Eingabe von
Code: Alles auswählen
CREATE DATABASE '/Pfad/datenbank.fdb' USER 'name' PASSWORD 'geheim';
Firebird eine neue Datenbank erstellt. Dabei wird ihr auch ein entsprechender Zeitpunkt als "Creation date:" zugewiesen.
Eigentlich kommt der Wert von "Creation date:" dem Charakter eines 'Fingerabdrucks' recht nahe. Das Erstelldatum wird
lobender Weise automatisch und nicht leicht änderbar von Firebird dargereicht.
Aber irgendwann kommt eine angestoßene Firebird Funktion und hinterlegt dort still und leise ein anderes (neueres) Erstelldatum. Ich kenne die gbak-Schalter - und auch das, was sie bei ihrer Verwendung jeweils bewirken. Dennoch komme ich zu der Auffassung, dass das daraus erneuerte Erstelldatum im Feld "Creation date:" in Ermangelung eines zusätzlichen Felds (z.B. "Modify date:") seine Informationskraft verliert. Wie ich bereits oben erwähnte; "Creation date:"
sollte aus meiner Sicht besser unangetastet bleiben.
Ja, das Dateiobjekt unter diesem Betriebssystem und unter Verwendung von "
SetFileTime function (fileapi.h)" könnte wohl in diesem Sinne funktionieren. Allerdings sieht das unter Linux schon etwas anders, da anspruchsvoller, aus.
Der "touch"-Befehl, den man dafür zuerst ins Auge fasst, schafft in diesem Fall leider keine Lösung. Beispiel:
touch -t 202210291100.22 adressen.fdb
"touch" ändert nicht das Erstelldatum - hier von adressen.fdb.
Was wohl in dieser Umgebung tatsächlich (vgl. SetFileTime function) zum Ziel führen könnte, wäre das tiefgreifende Verständnis des Inode-Konzept (Unix, Linux). Jedoch habe ich dies für mich noch nicht umfassend erschlossen. Also gehe ich da vorerst nicht ran.
Viele Grüße
Gerd