Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Beiträge

Neuer FireDAC-Treiber für SQLite SEE

fire-dac-logo

Embarcadero hat einen neuen FireDAC-Treiber für die SQLite Encryption Extension (SEE)-Datenbank bereitgestellt. Der Download ist in GetIt und hier sind einige Details zu dieser Entscheidung.


RAD Studio 11 Alexandria wird, wie frühere Versionen, mit einem FireDAC-Treiber für die SQLite-Datenbank geliefert, der zwei verschiedene Ansätze für die Bereitstellung bietet. Eine Möglichkeit ist das statische Linken, dh das Kompilieren von SQLite in Ihre Anwendungsbinärdatei, indem der kompilierte Code verlinkt wird. Die zweite Möglichkeit ist das dynamische Linken, dh die Verwendung einer externen SQLite-DLL. Die beiden Alternativen und ihre Konfigurationen für verschiedene Plattformen werden ausführlich behandelt unter:

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Connect_to_SQLite_database_(FireDAC)

fire-dac-logo-6968836

FireDAC SQLite-Verschlüsselung

Die statische Verknüpfung Version von FireDAC SQLite – Treiber bietet Datenbank – Verschlüsselung, eine Datenbank Hakenmechanismus (SQLITE_HAS_CODEC) verwenden , die jetzt wurde  entfernt  von den neuesten Versionen von SQLite die Datenbank Entwicklerteam. Aus diesem Grund unterstützt FireDAC noch die SQLite-Verschlüsselung auf der letzten Version von SQLite mit dem „Feature“. Wenn Sie das neueste SQLite möchten und keine Verschlüsselung benötigen, können Sie die DLL-Version verwenden.

Für die Zukunft ist geplant, die FireDAC SQLite-Verschlüsselung abzuschaffen oder zumindest als Legacy-Option bereitzustellen und auch für die statisch kompilierte Version auf die neueste Version von SQLite umzusteigen. Beachten Sie auch, dass Sie eine andere Verschlüsselungsimplementierung erhalten, wenn Sie von FireDAC SQLite Encryption zu FireDAC SQLite Encryption Extension (SEE)-Treiber wechseln: Aus diesem Grund sind die SQLite-Datenbankdateien nicht kompatibel.

SQLite-Verschlüsselungserweiterung (SEE)

Der Weg nach vorn mit SQLite Encryption von Hwaci (dem Unternehmen hinter SQLite) besteht darin, die Verwendung von SQLite Encryption Extension (SEE), einer kostenpflichtigen Version von SQLite, zu empfehlen. Weitere Informationen zu dieser Datenbank finden Sie unter diesen Links:

Da dies von einigen Kunden zur Unterstützung von SQLite EE angefordert wurde, hat Embarcadero einen speziellen FireDAC-Treiber erstellt. Beachten Sie, dass in der Lizenzvereinbarung angegeben ist, dass Sie statische Links verwenden sollten (da ich jedoch kein Anwalt bin, finden Sie weitere Informationen in der oben verlinkten Lizenz). Kein Dritter wie Embarcadero ist berechtigt, die Bibliotheksquelle oder den kompilierten Binärcode zu verbreiten. Was Embarcadero Entwicklern also zur Verfügung stellt, ist der Quellcode des neuen FireDAC-Treibers sowie einige C++Builder-basierte Skripte zum Kompilieren der Bibliothek. Sie müssen die beiden Teile (Bibliothekscode und Delphi-Einheit) auf Ihrem Entwicklungssystem erstellen und verknüpfen – und dazu müssen Sie möglicherweise das vollständige RAD Studio besitzen, da Sie sowohl C++- als auch Delphi-Code kompilieren müssen.

Betrachten Sie InterBase ToGo als Alternative

Bevor ich zum Download und zur praktischen Seite komme, beachten Sie, dass Sie abhängig von Ihren Zielplattformen und anderen Anforderungen die Verwendung von InterBase ToGo  und seiner Unterstützung für die Datenbankverschlüsselung als Alternative zu SQLite EE in Betracht ziehen können  – das Preismodell ist ein bisschen anders, was es macht Ein direkter Vergleich ist schwierig, aber ich bin sicher, das Embarcadero-Vertriebsteam kann Ihnen dabei helfen.

Der Treiber GetIt Download

Für Kunden mit aktivem Update-Abonnement steht der Download wie erwähnt in einem speziellen, neuen GetIt-Paket zur Verfügung:

firedac_sqliteee_getit-3955246

Embarcadero wird den Download in Kürze auch im Kundenportal zur Verfügung stellen. Unten habe ich das Readme dieses GetIt-Pakets mit zusätzlichen Informationen angehängt.

FireDAC SQLite SEE-Treiber Readme-Datei

Dies ist der vollständige Text der Readme-Datei im Paket:

Static API Wrapping-Klassen von FireDAC SQLite SEE, Copyright 2021 Embarcadero Technologies. Alle Rechte vorbehalten.
Die Nutzung unterliegt der RAD Studio 11 EULA, siehe https://www.embarcadero.com/products/rad-studio/rad-studio-eula

SQLite Encryption Extension (SEE) ist ein Produkt von Hipp, Wyrick & Company, Inc. (Hwaci) und unterliegt
der Lizenz unter https://www.hwaci.com/sw/sqlite/license-see.html

=== Statische Verknüpfung
Dies wird empfohlen, um SQLite SEE mit Ihrer Anwendung zu verwenden. Verwenden Sie die neue Unit FireDAC.Phys.SQLiteWrapper.SEEStat.pas.
Es ermöglicht die statische Verknüpfung von sqlite3 SEE mit einer Anwendung. Diese Einheit wird den Kunden nur als PAS-Datei zur Verfügung gestellt, da
wir zur Herstellung von DCU / etc sqlite3.obj benötigen, die der SQLite SEE-Lizenzbeschränkung unterliegt.

Verwendung:
* Setze FDPhysSQLiteDriverLink.Linkage=slSEEStatic. Dadurch wird FireDAC.Phys.SQLiteWrapper.SEEStat automatisch zur „uses“-Klausel
hinzugefügt * … oder FireDAC.Phys.SQLiteWrapper.SEEStat anstelle von FireDAC.Phys.SQLiteWrapper.Stat in die Anwendung-Uses-Klausel aufgenommen
* Machen Sie FireDAC.Phys.SQLiteWrapper.SEEStat. pas für Compiler zugänglich
* Kompilieren Sie sqlite3 SEE und erzeugen Sie sqlite3_x86.obj / sqlite3_x64.obj. Siehe Abschnitt „Recompiling SQLite SEE“ weiter unten
* Legen Sie sqlite3_x86.obj / sqlite3_x64.obj in den Ordner mit FireDAC.Phys.SQLiteWrapper.SEEStat.pas

=== Dynamische Verknüpfung
Dies unterliegt Weiterverteilungsbeschränkungen (siehe Hwaci-Lizenz)

Verwendung:
* Setze FDPhysSQLiteDriverLink.Linkage=slDynamic
* Setze FDPhysSQLiteDriverLink.SEEKey=’xxx‘, wobei ‚xxx‘ für den SEE-Aktivierungsschlüssel steht
Weitere Details finden Sie in „wwwreadme.wiki“ SEE-Distributionsdatei, Kapitel „5.0 C Interface“
* Bereitstellen sqlite3.dll SEE-Version und für FireDAC-Anwendung zugänglich machen

=== Was funktioniert, was nicht
FireDAC SQLite-Verschlüsselung (FSE) unterstützt Funktionen, die SQLite SEE nicht unterstützt:
* Wenn ein falsches Passwort angegeben wird, dann gibt FSE „falsches Passwort“ zurück, SEE gibt immer „Datei ist keine Datenbank“ zurück ”
* FSE kann den aktuellen Verschlüsselungsalgorithmus zurückgeben, SEE kann nicht
* die Liste der möglichen Werte für den FireDAC-Verbindungsdefinitionsparameter „Encrypt“ hat von FSE unterstützte Werte, keine SEE-Werte

Beachten Sie, dass vorhandene Datenbanken, die mit FireDAC SQLite-Verschlüsselung erstellt wurden, nicht mit SQLite SEE-Datenbanken kompatibel sind.
Wenn Sie Ihre Anwendung erstellen, ist es gut, zuerst FireDAC-Umgebungsberichte zu erhalten, um sicherzustellen, dass „das richtige SQLite“ verwendet wird.

=== SQLite SEE neu
kompilieren Verwenden Sie die bereitgestellte sqlite_compile.bat, um sqlite3_x86.obj / sqlite3_x64.obj zu erzeugen. Bevor Sie sqlite_compile.bat ausführen, aktualisieren Sie es und setzen Sie diese Variablen auf Ihre tatsächlichen Werte:
* BDS – RAD Studio-Installationsordner
* SQLITE_SRC – Pfad zur SQLite-Quelldatei


Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.
Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Kommentieren

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

IN THE ARTICLES