Du benötigst also etwas um Scripts ausführen zu können.
Diese Scripts (Updates, Erweiterung) sind allerdings abhängig von der aktuellen Datenbank und Struktur Version.
Dafür baut man sich ein Interface um diese Informationen zu bekommen und eben Scripts auszuführen.
Delphi-Quellcode:
TVersionInfo =
record
Major, Minor, Release, Build : word;
end;
TExtension =
record
Name :
string;
Version : TVersionInfo;
end;
IDatabaseUpgrader =
interface
// firebird, mysql, sqlite, ...
function getEngineName :
string;
function getEngineVersion : TVersionInfo;
function getVersion : TVersionInfo;
function getExtensionCount : integer;
function getExtension (
index : integer ): TExtension;
procedure ExecuteScript (
const AScript :
string );
end;
Das implementiert man nun für die jeweils verwendete Zugriffskomponente und kann sich nun ein universelle Klasse schreiben um verfügbare Updates und Erweiterungen zu ermitteln und diese auch zu installieren.
Die Scripts selber müssen allerdings auch dafür sorgen, dass die entsprechenden Informationen in der
DB gespeichert werden, was dann aber nicht mehr das Problem sein sollte.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)