![]() |
Datenbank: SQLite • Version: ? • Zugriff über: Firedac
SQLite mit passwort -303 unsupported feature
Habe ein Projekt von Delphi XE11 nach XE 12 übernommen.
Nun folgende Laufzeitfehler. Auf Android32 kann eine SQLite Connection nicht mehr mit dem einem gesetzten 'Password' parameter erstellt werden. Es kommt die meldung -303 unsupported feature. "-303. Funktionalität wird nicht unterstützt" Die Datenbank ist zudem zeitpunkt noch nicht erstellt! Mit Leerstring als 'Password' und ohne 'Password' parameter geht es. Außerdem funktioniert unter windows dieser Code, compiliert mit Delphi XE 12, nicht auf einer mit mit Delphi XE 11 mit passwort erstellten SQLite datenbank .
Delphi-Quellcode:
Wenn fPassword gesetzt ist, kommt "-303 unsupported feature"
fFDSQLiteValidate := TFDSQLiteValidate.Create(nil);
try fFDSQLiteValidate.Database := aDatabase; fFDSQLiteValidate.Password := FPassword; fFDSQLiteValidate.DriverLink := FPhysSQLiteDriverLink; fFDSQLiteValidate.MaxErrors := 10; fFDSQLiteValidate.Options := [voCheckIndexes];//[voCheckIndexes]= StandardCheck or [] = QuickCheck fFDSQLiteValidate.OnProgress := CheckOnlyProgressEvent; fFDSQLiteValidate.OnError := CheckOnlyErrorEvent; try Result := fFDSQLiteValidate.CheckOnly; Except On E:Exception do Begin Result := false; FLastCheckOnlyErrorMessage := e.Message; Tlog.d(FLastCheckOnlyErrorMessage); End; end; finally fFDSQLiteValidate.free; end; Wenn Fpassword leerstring ist , kommt "Error: file is not a database" Ist das Phänomen bekannt und die Lösung auch? |
AW: SQLite mit passwort -303 unsupported feature
Versuch mal, irgendwo im Projekt die Unit FireDAC.Phys.SQLiteWrapper.FDEStat in die uses-Anweisung aufzunehmen.
|
AW: SQLite mit passwort -303 unsupported feature
Interessant.
jetzt geht es. Kann man die magische passwort unit auch 2 mal unterbringen, damit die units die SQLite Passwörter verwenden in jedemfall funktionieren ? Was hat sich da von XE11 auf XE12 geändert, dass ich diese unit jetzt brauche? Edit: Ok, also es ist einfache eine import unit für eine DynLib . Mit Kompiler schaltern für dynamisches laden oder statisches linken. War das was hier FireDAC.Phys.SQLiteWrapper.FDEStat drin ist früher in FireDAC.Phys.SQLiteWrapper enthalten und jetzt nicht mehr? Edit2: FireDAC.Phys.SQLiteWrapper.FDEStat FireDAC.Phys.SQLiteWrapper.Stat Was ist der Unterschied? ich habe voher FireDAC.Phys.SQLiteWrapper.Stat benutzt. Muss ich diese unit jetzt ausbauen? |
AW: SQLite mit passwort -303 unsupported feature
Die Unit FireDAC.Phys.SQLiteWrapper.FDEStat muss verwendet werden um das alte Encryption-Verfahren zu verwenden. Sie muss nach FireDAC.Phys.SQLiteWrapper.Stat stehen, damit die Default-Engine auf FDE geändert wird.
Wenn du sichergehen willst, platziere einen
Delphi-Quellcode:
auf ein Form und setze das
TPhysSWLiteDriverLink
Delphi-Quellcode:
Property auf
EngineLinkage
Delphi-Quellcode:
. Damit kann dir die Default-Engine egal sein.
slFDEStatic
|
AW: SQLite mit passwort -303 unsupported feature
Danke.
Ich bin leicht schockiert weil ich diesen schrecklichen blog post fand. (Ich hab nur Delphi kein C++) ![]() Also der eigentliche Grund für das Gehampel ist, dass wir bei dem alten binary 'libsqlite.a', 'sqlite3_x86.obj' und 'libcgsqlite3.dylib' bleiben können ? Weil die neuen Versionen dieser Dateien keine Encryption mehr unterstützen und Encryption jetzt ein Premium-Feature ist was man über einen SEETreiber nachkaufen muss? Also Enshittyfication wie bei games? Früher hat Firedac immer eine Login Meldung gebracht oder eine andere nervige Warnung, wenn man eine Datenbank mit leerem oder Ohne Password versucht hat zu connecten... deswegen hat die Datenbank ein Passwort. Muss ich jetzt meine SQLite Datenbank, um zukunftsicher zu sein, von einer DB mit Passwort in eine ohne Passwort umwandeln? Und wird dann wieder eine Meldung kommen wenn die DB kein Passwort hat? Edit: Auf Android geht es ohne passwort aber wie bekommt man Daten von der alten verschlüsselten DB in die Neue? TFDBatchMove ?? |
AW: SQLite mit passwort -303 unsupported feature
Wenn ich beide Units verwende
Delphi-Quellcode:
bekomme ich beim linken für Android den fehler
uses
FireDac.Phys.SQLiteWrapper, FireDAC.Phys.SQLiteWrapper.Stat, //diese FireDAC.Phys.SQLiteWrapper.FDEStat; //und diese
Code:
Also diesen fehler bekomme ich für so ziemlich jede Funktion in sqlite3_fde.o und sqlite3.o
[DCC Fehler] E2597 C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\AndroidNDK-21-23.0.50491.5718\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe: error: c:\\program files (x86)\\embarcadero\\studio\\23.0\\lib\\Android\\Release/libsqlite_fde.a(sqlite3_fde.o): multiple definition of 'sqlite3_aggregate_context'
C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\AndroidNDK-21-23.0.50491.5718\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe: c:\\program files (x86)\\embarcadero\\studio\\23.0\\lib\\Android\\Release/libsqlite.a(sqlite3.o): previous definition here C:\Users\Public\Documents\Embarcadero\Studio\23.0\CatalogRepository\AndroidNDK-21-23.0.50491.5718\android-ndk-r21\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin\arm-linux-androideabi-ld.exe: error: c:\\program files (x86)\\embarcadero\\studio\\23.0\\lib\\Android\\Release/libsqlite_fde.a(sqlite3_fde.o): multiple definition of 'sqlite3_aggregate_count' Eine laaange list von Fehlern und dann den Linker Error
Code:
[DCC Fataler Fehler] F2588 Linker-Fehlercode: 1 ($00000001)
In windows geht es nur Android meckert. Ich brauche beide , um Die Datebank zu konvertieren. Muss ich den FDEStat import modifizieren? |
AW: SQLite mit passwort -303 unsupported feature
Zitat:
![]() Zitat:
|
AW: SQLite mit passwort -303 unsupported feature
Zitat:
Das erfordert ein bisschen Ausdauer, aber das ist offensichtlich eine gute Methode um Steinreich zu werden: - Bring eine Software für Lau auf den Markt - Warte bis die Software "überall" verwendet wird - Entferne ein wesentliches Feature der Software und verkaufe es gegen Lizenzen die so abartig teuer sind dass dich jeder dafür hasst. |
AW: SQLite mit passwort -303 unsupported feature
Zitat:
Code:
Den Bremsklotz für eine Umsetzung bei Embarcadero deutet vermutlich das Wort "painful" an.
After a lot of painful debugging and adaptation in plain C, we just updated SQLite3 to latest 3.32.2 revision
- switched to VFS pattern for encryption - sqlite3 cross-compilation is now done from Linux scripts Bis bald... Thomas |
AW: SQLite mit passwort -303 unsupported feature
Es geht nicht um Emba. Ich kann verstehen wenn man sich da lieber an Funktionen hält die zuverlässig funktionieren. Es fällt sonst auf Emba zurück wenn der Kram nicht ordentlich geht.
Sqllite.org : SEE (Sqllite Encryption Extension) : Product To Purchase: SEE Source Code License Only ($2000 USD) Das meine ich! <OT> Btw, ich bekomme keinen einzigen Blog Post von Emba auf. Ich sehe die Hauptseite. Ein Cclick auf einen Post zeigt mir nur immer wieder die Hautpseite an, auch wenn sich die Adresszeile ändert als würde in einen Beitrag gewechselt. Browser : Chrome.latest. <OT> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:57 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz