![]() |
XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Hallo zusammen,
ich bin jetzt seit 2 Jahren am Suchen wie ich es am besten hinkriege, eine sqlite-Datenbank in einer Anwendung für Win, OS X, iOS und Android (ggf. irgendwann mal Win Phone) am besten zu verschlüsseln. Das/Die/Der TFDSQLiteSecurity funktioniert u.a. unter iOS nicht. Mit XE7 kommt jetzt wenigstens eine Fehlermeldung... Hat jemand eine Idee/Erfahrung wie man das umsetzen kann? Die IB-Lösung von Emba kommt aufgrund der Lizenzregelung nicht in Frage. Kostenlos muss es nicht sein. Würde mich über Rückmeldungen freuen, da ich hier einfach nicht weiter komme. Gruß |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Ja, aber ohne Verschlüsselung... Man braucht dann das Interbase ToGo, und das kostet pro Gerät.
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Liste der Anhänge anzeigen (Anzahl: 2)
LiteDAC/UndiDAC von DevArt scheint mit Verschlüsselung von SQLite klarzukommen ( statisch ohne Client Bibliothek)
![]() |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Ja aber leider auch nur für Windows:
-> SQLite database encryption in Direct mode Und der "Direct Mode" läuft nur unter Win32/x64 |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Delphi-Quellcode:
Oder habe ich jetzt etwas falsch verstanden?
FSQLConnection.Params.Values['Password'] := FPassword;
Mavarik |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Delphi-Quellcode:
Meldung unter iOS:
FdConnection1.Params.Values['Database'] := GetHomePath + PathDelim +
'Documents' + PathDelim + 'test.sqlite'; FdConnection1.Params.Values['Password'] := 'test'; FdConnection1.Connected := true; [FireDac][Phys][SQLite][sqlite3]-303. Funktionalität wird nicht unterstützt. |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
AFAIK liegt das aber nicht an FireDAC oder sonstigen Bibliotheken, sondern an Android und iOS selber, denn da ist das Verschlüsselungsgeraffel nicht dabei
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Im Direct Mode ist die sqlite-lib ja auch von devart selber um die Verschlüsselung erweitert.
Ich brauche hier "eigentlich" dringend eine Lösung, gerade auf mobilen Geräten kommt man nicht um die lokale Verschlüsselung rum. |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Auf den Mobile Devices ist aber ein SQLite Version ohne Verschlüsselung. Darum geht das da eben nicht einfach mal eben so |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Ja, dass das leider nicht mal ebenso geht habe ich leider auch bemerkt. Wie es scheint, kann man ja bei den Dacs von DevArt eine eigene ClientLibrary mitgeben. Wenn diese dann Verschlüsselung unterstützt sollte es ja klappen.
Die Frage ist nur welche zu empfehlen ist. ![]() |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Das gibt es auch als OpenSource
![]() hat aber durchaus Unterschiede zur Kaufversion |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Generell ist mir nur unklar:
a) Wie funktioniert die Einbindung konkret? b) Können dann verschlüsselte DB's zwischen Win, OS X, iOS, Android ausgetauscht werden und sind kompatibel? Ich blick da nicht wirklich durch. |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Mavarik |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Neu unter XE7 (oder schon XE6??) ist, dass jetzt eine Fehlermeldung kommt. |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Mit XE6 funktioniert das problemlos... Mit XE7 kann ich meine App noch nicht übersetzen, dafür muss ich erst einiges $IFDEFen was sich in XE7 geändert hat. Mavarik |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
?
Verrätst Du mir auch wie Du es gemacht hast? FSqlConnection, welcher Type ist das? |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Delphi-Quellcode:
Mavarik
...
SQLConnection : TFDConnection; ... procedure TSQLite.SQLConnectionBeforeConnect(Sender: TObject); begin SQLConnection.Params.Values['DriverName'] := 'SQLite'; SQLConnection.Params.Values['DriverUnit'] := 'Data.DbxSqlite'; SQLConnection.Params.Values['DriverPackageLoader'] := 'TDBXSqliteDriverLoader,DBXSqliteDriver190.bpl'; SQLConnection.Params.Values['MetaDataPackageLoader'] := 'TDBXSqliteMetaDataCommandFactory,DBXSqliteDriver190.bpl'; FSQLConnection.Params.Values['Database'] := GetbaseFileName; FSQLConnection.Params.Values['ColumnMetadataSupported'] := 'False'; FSQLConnection.Params.Values['FailIfMissing'] := 'False'; if Trim(FPassword) <> '' then FSQLConnection.Params.Values['Password'] := FPassword; end; |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Hi Mavarik,
danke für den Code. Leider kommt weiterhin folgende Fehlermeldung: Zitat:
1. TFDConnection auf das Form gelegt und Drivername auf SQLite gesetzt 2. TButton auf das Form gelegt 3. Beim OnClick des Buttons:
Delphi-Quellcode:
4. Im BeforeConnect der TFDConnection
FdConnection1.Connected := true;
Delphi-Quellcode:
Was mache ich falsch?
FdConnection1.Params.Values['DriverName'] := 'SQLite';
FdConnection1.Params.Values['DriverUnit'] := 'Data.DbxSqlite'; FdConnection1.Params.Values['DriverPackageLoader'] := 'TDBXSqliteDriverLoader,DBXSqliteDriver190.bpl'; FdConnection1.Params.Values['MetaDataPackageLoader'] := 'TDBXSqliteMetaDataCommandFactory,DBXSqliteDriver190.bpl'; FdConnection1.Params.Values['Database'] := GetHomePath + PathDelim + 'Documents' + PathDelim + 'test.sqlite';; FdConnection1.Params.Values['ColumnMetadataSupported'] := 'False'; FdConnection1.Params.Values['FailIfMissing'] := 'False'; FdConnection1.Params.Values['Password'] := 'test'; |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Es fehlt ein uses... Bin in Bonn du auch ?
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Nein, bin nicht in Bonn. Werde nächstes Jahr mal vorbeischauen, bis jetzt noch nie dazu gekommen.
Habe jetzt alles an Data-Klassen und FireDac.Phys-Klassen eingebunden. Ergebnis ist unverändert. |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Wenn es nicht funktioniert, schick mir ne PM dann schicke ich dir mal ne Unit. Mavarik |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Danke für die Antwort. Die unit hatte ich schon drin. Setze mal die Testanwendung neu auf.
Wäre echt um ein großen Problem erleichtert wenn das klappen würde. |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Mavarik |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Mavarik,
leider funktioniert es bei mir nicht. Unter iOS weiterhin die Meldung dass die Funktion nicht unterstützt wird. Anbei mal das Test-Projekt. Gruß |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
hmm, kann den Fehler auch mit XE6 bestätigen... Ich schau mal was zu ändern ist... |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Omg rtfm...
Hatte ich aber auch vergessen! Zitat:
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Gleich mal ausprobieren! Bin ja gespannt!
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Hi,
funktioniert bei mir leider nicht...
Delphi-Quellcode:
Fehler:
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, Data.DBXSQLite, FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.SQLite, FireDAC.Phys.SQLiteDef, FireDAC.Stan.ExprFuncs, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt, FMX.StdCtrls, Data.DB, FireDAC.Comp.DataSet, FireDAC.Comp.Client, FireDAC.FMXUI.Wait, FireDAC.Comp.UI; procedure TForm1.FDConnection1BeforeConnect(Sender: TObject); begin FdConnection1.Params.Values['DriverName'] := 'SQLite'; FdConnection1.Params.Values['DriverUnit'] := 'Data.DbxSqlite'; FdConnection1.Params.Values['DriverPackageLoader'] := 'TDBXSqliteDriverLoader,DBXSqliteDriver190.bpl'; FdConnection1.Params.Values['MetaDataPackageLoader'] := 'TDBXSqliteMetaDataCommandFactory,DBXSqliteDriver190.bpl'; FdConnection1.Params.Values['Database'] := FDbFile; FdConnection1.Params.Values['ColumnMetadataSupported'] := 'False'; FdConnection1.Params.Values['FailIfMissing'] := 'False'; FdConnection1.Params.Values['Password'] := 'AES-256:test'; end; Funktionalität wird nicht unterstützt. |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Seid ihr beide euch aber auch wirklich einig, dass ihr von FireDAC sprecht und nicht von dbExpress?
Die Quellen von Maverick riechen nämlich ganz stark nach dbExpress ![]() Zum Thema FireDAC und verschlüsselte SQlite-Datenbank gibt es eine Aussage von Dmitry Arefiev / FireDAC Architect (der muss es wissen) http://codeverge.com/embarcadero.delphi.firedac/-android-is-firedac-not-support-en/1090005 Hello FireDAC SQLite encryption is implemented using custom codec implementation in sqlite3.c. This requires static linking of sqlite3.obj. It is implemented only for Windows platforms. IOW, FireDAC SQLite encryption at moment is not supported on mobile platforms. -- With best regards, Dmitry Arefiev / FireDAC Architect FireDAC - Firebird, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Access, Informix, ODBC high-speed data access lib |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
Zitat:
Delphi-Quellcode:
...
FdConnection1.Params.Values['Newpassword'] := 'AES-256:test'; ... end; |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Hallo Mavarik,
ich bekomme es einfach nicht hin.... Kannst Du mir ein Beispielprojekt hochladen???
Delphi-Quellcode:
procedure TForm1.FDConnection1BeforeConnect(Sender: TObject);
begin FdConnection1.Params.Values['DriverName'] := 'SQLite'; FdConnection1.Params.Values['DriverUnit'] := 'Data.DbxSqlite'; FdConnection1.Params.Values['DriverPackageLoader'] := 'TDBXSqliteDriverLoader,DBXSqliteDriver190.bpl'; FdConnection1.Params.Values['MetaDataPackageLoader'] := 'TDBXSqliteMetaDataCommandFactory,DBXSqliteDriver190.bpl'; FdConnection1.Params.Values['Database'] := FDbFile; FdConnection1.Params.Values['ColumnMetadataSupported'] := 'False'; FdConnection1.Params.Values['FailIfMissing'] := 'False'; FdConnection1.Params.Values['password'] := ''; FdConnection1.Params.Values['newpassword'] := 'Aes-256:12345qwe12345qwe'; end; |
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Zitat:
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
*push* :angel2:
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
DevArt hats gerichtet! In Den neuen DACs ist der directmode nun auch für os x, iOS und Android verfügbar uns somit auch die encryption.
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
somit schon wieder kein natives Support in XE8 für iOS & Android bzgl. Verschlüsselung?
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
Eine native sqlite-Verschlüsselung gibt es doch garnicht(?).
|
AW: XE7: TFDSQLiteSecurity wieder nicht für Android und iOS
ok, dann "halb native" in firedac inkludiert, sodass man dafür nicht eine externe compo braucht (zb devart)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:05 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