So hätte die Konveriterung von "SQLITE gut" nach "SQLITE schlecht aber umsonst" aussehen können.
Delphi-Quellcode:
procedure TDbHealth.ConvertOldDBToNewDB(aDestpassword:String; aDestDBFilename:String= '');
var fFDSQLiteBackup:TFDSQLiteBackup;
begin
TSync.DB_CS.Acquire;
try
FPhysSQLiteDriverLink.EngineLinkage := slFDEStatic;
fFDSQLiteBackup := TFDSQLiteBackup.Create(nil);
try
fFDSQLiteBackup.Database := FDatabase;
fFDSQLiteBackup.Password := FPassword;
fFDSQLiteBackup.DriverLink := FPhysSQLiteDriverLink;
fFDSQLiteBackup.DestDatabase := aDestDBFilename;
fFDSQLiteBackup.DestPassword := aDestpassword;
fFDSQLitebackup.WaitForLocks := true;
fFDSQLiteBackup.DestMode := smCreate;// smCreate, smReadWrite, smReadOnly
fFDSQLiteBackup.Backup;
finally
fFDSQLiteBackup.Free;
end;
FPhysSQLiteDriverLink.EngineLinkage := slDefault;
tFile.Delete(FDatabase);
FDatabase := aDestDBFilename;
fPassword := aDestpassword;
finally
TSync.DB_CS.Release;
end;
end;
Die Datenbank hätte danach einen Neuen Namen und ein neues passwort und die App könnte durchstarten und sich auf die Neue Passwortfreie unverschlüsselte SQLITE
DB verbinden... und das funktioniert auch in Windows...
Ist die Frage ob man die Imports und Wrapper passend modifizieren kann, das der Linker die in Andoird und IOS mitnimmt.