Eine SQLite Datenbank soll mit Encryption geöffnet werden.
Der folgende Code hat bis 10.3 funktioniert, bei 10.4 kommt die Fehlermeldung "Funktionalität wird nicht unterstützt":
Code:
FLocalServerConnection := TFDConnection.Create(Self);
...
FLocalServerConnection.Open('DriverID=SQLite;Database=dieDatenbankdatei;Password=aes-ecb-256:geheim');
Der Parameter "Password=..." aktiviert die Encryption und führt letztlich in FireDAC.Phys.SQLiteWrapper.pas zu der Prüfung, ob die dazu nötige Funktion vorhanden ist:
Code:
procedure TSQLiteDatabase.Key(const AKey: String);
...
if Assigned(Lib.Fsqlite3_key) then begin
...
end
else
FDCapabilityNotSupported(nil, [S_FD_LPhys, S_FD_SQLiteId, 'sqlite3']);
end;
Und jetzt kommt der Unterschied zwischen 10.3. und 10.4.:Während in 10.3 in FireDAC.Phys.SQLiteCli.pas noch die Funktion sqlite3_key(...) explizit deklariert war, ist sie es in 10.4 nicht mehr, und wird deshalb nur in sqlite3.dll gesucht.
Und da ist sie nicht.
Wer weiss Rat?