wxWidgets-Komponenten

ÜbersichtwxSQLite3wxPdfDocumentwxChartDir

wxSQLite3

wxSQLite3 ist eine C++ Klasse für die Verwendung der frei verfügbaren SQLite 3.x Datenbank in wxWidgets-Anwendungen.

Aktuelle Version: 4.9.12 - Oktober 2024 (basiert auf SQLite 3.47.0)

Web-Site und Download: https://github.com/utelle/wxsqlite3

API-Dokumentation: https://utelle.github.io/wxsqlite3

Für den Zugriff auf SQLite-Datenbanken existieren bereits einige Lösungen, wie z.B. die folgenden:

Die Entwicklung der Komponente wxSQLite3 wurde von allen drei erwähnten SQLite Schnittstellen beeinflusst. wxSQLite3 versucht nicht die zugrunde liegende Datenbank zu verstecken, sondern unterstützt im Gegenteil fast alle speziellen Eigenschaften der SQLite-Version 3.x wie z.B. die Bereitstellung benutzerdefinierter skalarer oder aggregierender Funktionen.

Da SQLite Zeichenketten in UTF-8-Codierung speichert, konvertieren die wxSQLite3 Methoden automatisch zwischen wxStrings-Zeichenketten und UTF-8-Zeichenketten. Am besten funktioniert dies für die Unicode-Version von wxWidgets.

Die mit Doxygen generierte wxSQLite3-Dokumentation ist online verfügbar. Alternativ kann sie aus dem entsprechenden GitHub-Branch heruntergeladen werden.

Wichtige Hinweise:

Aufgrund einer Änderung im SQLite-Quellcode vom 7. Februar 2020 ("Simplify the code by removing the unsupported and undocumented SQLITE_HAS_CODEC compile-time option") ist die Weiterpflege der bisherigen Implementierung der Verschlüsselungserweiterung nicht mehr mit vertretbarem Aufwand möglich. In dem separaten GitHub-Projekt SQLite3 Multiple Ciphers wird eine Neuimplementierung der Verschlüsselungserweiterung zur Verfügung gestellt, die mit zukünftigen SQLite-Versionen kompatibel ist. Beginnend mit Version 4.6.0 wird diese neue Implementierung in wxSQLite3 eingesetzt.

Die bisher im Zusammenhang mit Releases bereitgestellten vorkompilierten SQLite3-Binärdateien für Windows werden auch in Zukunft zur Verfügung gestellt - allerdings nunmehr im Projekt SQLite3 Multiple Ciphers. Die Quelldateien der bisherigen Verschlüsselungserweiterung wurden aus dem GitHub-Repository entfernt.

Feedback sowie Fehlerberichte sind willkommen.

Neuigkeiten

Oktober 2024

Die Version 4.9.12 wurde freigegeben und steht zum Download bereit. Diese Version ist sowohl zu wxWidgets 2.8.12, 3.0.x, 3.1.x als auch 3.2.x kompatibel.

Wichtiger Hinweis: Ein Update auf die neue Version wird empfohlen, da in der unterlagerten SQLite3 Multiple Ciphers Bibliothek einige Fehler behoben wurden, die potentiell zu beschädigten Datenbankdateien führen können (auch wenn dies nicht zwangsläufig und nur unter gewissen Randbedingungen auftritt).

Wichtige Hinweise bei Verwendung des WAL-Journal-Modus

Zur Unterstützung konkurrierenden Zugriffs auf SQLite-Datenbanken im WAL-Journal-Modus mit Alt-Systemen wie z.B. System.Data.SQLite oder SQLCipher wurde mit Version 1.3.0 eine neue Methode zur Verschlüsselung der Dateninhalte in WAL-Journalen eingeführt.

Bedauerlicherweise sind WAL-Journale, die von Versionen <= 1.2.5 hinterlassen wurden, nicht kompatibel mit der neuen Implementierung. Um trotzdem auf WAL-Journale früherer Versionen zugreifen zu können, wurde der Konfigurationparameter mc_legacy_wal eingeführt. Falls der Parameter den Wert 1 hat, wird die frühere Verschlüsselungsimplementierung für WAL-Journale verwendet. Der Standardwert dieses Parameters kann zur Übersetzungszeit festgelegt werden, indem das Symbol SQLITE3MC_LEGACY_WAL entsprechend gesetzt wird. Der tatsächliche Wert kann zur Laufzeit mittels Pragma oder URI-Parameter mc_legacy_wal festgelegt werden.

Grundsätzlich ist es möglich, den WAL-Kompatibilitätsmodus generell zu verwenden, aber es wird dringend empfohlen, ihn nur zu verwenden, um WAL-Journale, die von früheren Versionen hinterlassen wurden, ohne Datenverlust zu verarbeiten.


Hinweis: Der SQLite-Quellcode sowie der Quellcode des Erweiterungsmoduls mit zusätzlichen SQL-Funktionen ist in den Release-Paketen enthalten.

Änderung der Verschlüsselungskomponente

Beginnend mit wxSQLite3-Version 4.0.0 wurde die Verschlüsselungskomponente dahingehend angepasst, dass das Verschlüsselungsverfahren zur Laufzeit ausgewählt werden kann. Folgende Methoden werden derzeit unterstützt:

Beginnend mit wxSQLite3-Version 3.1.0 wurden die wxSQLite3-Verschlüsselungsverfahren AES-128-Bit und AES-256-Bit angepasst, um ein potentielles Problem mit der Erstellung unbrauchbarer verschlüsselter Datenbanken zu beheben.

Die Wahrscheinlichkeit, dass Anwender früherer Versionen der Verschlüsselungskomponente von dem Problem betroffen sind, ist relativ gering, nämlich höchstens 1 zu 8192, d.h., weniger als 0,02 %. Nichtsdestoweniger wurde beschlossen, diesen Schwachpunkt der Implementierung zu beheben.

Von jetzt an werden die Bytes 16 bis 23 des Datenbankkopfes unverschlüsselt gespeichert (so wie es auch in der kostenpflichtigen Verschlüsselungskomponente SEE (SQLite Encryption Extension) der SQLite-Entwickler der Fall ist). Dies ist wichtig, da diese Bytes im SQLite-Code gelesen und interpretiert werden, bevor jedwede Verschlüsselungskomponente die Chance erhält, den Datenbankkopf zu entschlüsseln.

Die gute Nachricht für Anwender früherer Versionen der wxSQLite3-Verschlüsselungskomponente ist, dass die neue Version bestehende verschlüsselte Datenbank transparent in das neue Format überführt. Allerdings funktioniert dies nur in eine Richtung, d.h., sobald eine Datenbankdatei in das neue Format überführt wurde, kann sie von früheren Versionden der Verschlüsselungskomponente nicht mehr verarbeitet werden. Stattdessen wird man die Fehlermeldung "Keine Datenbank oder verschlüsselt" erhalten.

Historie

Neu in Version 4.9.12 - Oktober 2024

Neu in Version 4.9.11 - Juni 2024

Neu in Version 4.9.10 - März 2024

Neu in Version 4.9.9 - Januar 2024

Neu in Version 4.9.8 - November 2023

Neu in Version 4.9.7 - November 2023

Neu in Version 4.9.6 - Oktober 2023

Neu in Version 4.9.5 - September 2023

Neu in Version 4.9.4 - Mai 2023

Neu in Version 4.9.3 - März 2023

Neu in Version 4.9.2 - Februar 2023

Neu in Version 4.9.1 - November 2022

Neu in Version 4.9.0 - September 2022

Neu in Version 4.8.2 - Juli 2022

Neu in Version 4.8.1 - Mai 2022

Neu in Version 4.8.0 - April 2022

Neu in Version 4.7.9 - April 2022

Neu in Version 4.7.8 - März 2022

Neu in Version 4.7.7 - Februar 2022

Neu in Version 4.7.6 - Januar 2022

Neu in Version 4.7.5 - November 2021

Neu in Version 4.7.4 - Juli 2021

Neu in Version 4.7.3 - Juni 2021

Neu in Version 4.7.2 - Mai 2021

Neu in Version 4.7.1 - April 2021

Neu in Version 4.7.0 - April 2021

Neu in Version 4.6.10 - April 2021

Neu in Version 4.6.9 - April 2021

Neu in Version 4.6.8 - März 2021

Neu in Version 4.6.7 - März 2021

Neu in Version 4.6.6 - März 2021

Neu in Version 4.6.5 - März 2021

Neu in Version 4.6.4 - Dezember 2020

Neu in Version 4.6.3 - Dezember 2020

Neu in Version 4.6.2 - Dezember 2020

Neu in Version 4.6.1 - Oktober 2020

Neu in Version 4.6.0 - August 2020

Neu in Version 4.5.1 - Januar 2020

Neu in Version 4.5.0 - Januar 2020

Neu in Version 4.4.8 - Oktober 2019

Neu in Version 4.4.7 - Oktober 2019

Neu in Version 4.4.6 - September 2019

Neu in Version 4.4.5 - August 2019

Neu in Version 4.4.4 - August 2019

Neu in Version 4.4.3 - Mai 2019

Neu in Version 4.4.2 - Februar 2019

Neu in Version 4.4.1 - Februar 2019

Neu in Version 4.4.0 - Dezember 2018

Neu in Version 4.3.0 - November 2018

Neu in Version 4.2.0 - Oktober 2018

Neu in Version 4.1.1 - Oktober 2018

Neu in Version 4.1.0 - September 2018

Neu in Version 4.0.4 - Juni 2018

Neu in Version 4.0.3 - April 2018

Neu in Version 4.0.2 - April 2018

Neu in Version 4.0.1 - April 2018

Neu in Version 4.0.0 - April 2018

Neu in Version 3.5.9 - Januar 2018

Neu in Version 3.5.8 - November 2017

Neu in Version 3.5.7 - September 2017

Neu in Version 3.5.6 - August 2017

Neu in Version 3.5.5 - Juni 2017

Neu in Version 3.5.4 - Juni 2017

Neu in Version 3.5.3 - März 2017

Neu in Version 3.5.2 - März 2017

Neu in Version 3.5.1 - Februar 2017

Neu in Version 3.5.0 - Januar 2017

Neu in Version 3.4.1 - Oktober 2016

Neu in Version 3.4.0 - August 2016

Neu in Version 3.3.1 - April 2016

Neu in Version 3.3.0 - Dezember 2015

Neu in Version 3.2.1 - März 2015

Neu in Version 3.2.0 - Dezember 2014

Neu in Version 3.1.1 - Juni 2014

Neu in Version 3.1.0 - Mai 2014

       Das neue GUI-Beispielprogramm zeigt die Verwendung von

Neu in Version 3.0.6 - Dezember 2013

Neu in Version 3.0.5 - September 2013

Neu in Version 3.0.4 - August 2013

Neu in Version 3.0.3 - März 2013

Neu in Version 3.0.2 - Dezember 2012

Neu in Version 3.0.1 - November 2012

Neu in Version 3.0.0.1 - Februar 2012

Version 3.0.0.1 behebt einen Fehler in der Methode wxSQLite3Statement::Reset, der zu einem Programmabsturz führen konnte, wenn das zugehörige SQLite-Statement bereits finalisiert war. Desweiteren wurden in der Klasse wxSQLite3Exception einige fehlende SQLite-Fehlercodes ergänzt.

Neu in Version 3.0.0 - Januar 2012

Neu in Version 2.1.3 - August 2011

Neu in Version 2.1.2 - Juli 2011

Neu in Version 2.1.1 - April 2011

Neu in Version 2.1.0 - März 2011

Neu in Version 2.0.2 - Dezember 2010

Neu in Version 2.0.1 - Oktober 2010

Neu in Version 2.0.0 - Juli 2010

Neu in Version 1.9.9 - März 2010

Neu in Version 1.9.8 - Februar 2010

Neu in Version 1.9.7 - November 2009

Neu in Version 1.9.6 - September 2009

Neu in Version 1.9.5 - Februar 2009

Neu in Version 1.9.4 - Januar 2009

Neu in Version 1.9.3 - Dezember 2008

Neu in Version 1.9.2 - November 2008

Neu in Version 1.9.1 - September 2008

Neu in Version 1.9.0 - Juli 2008

Neu in Version 1.8.5 - Juni 2008

Neu in Version 1.8.4 - April 2008

Neu in Version 1.8.3 - Januar 2008

Neu in Version 1.8.2 - Dezember 2007:

Neu in Version 1.8.1 - November 2007:

Neu in Version 1.7.3 - Mai 2007:

Neu in Version 1.7.2 - Februar 2007:

Neu in Version 1.7.1 - Januar 2007:

Neu in Version 1.7.0 - Januar 2007:

Neu in Version 1.6.0 - Juli 2006:

Zurück zum Seitenanfang


Copyright © 2005-2024 Ulrich Telle, letzte Änderung: 22. Oktober 2024 | Impressum | Datenschutz