You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: readme.md
+30-88Lines changed: 30 additions & 88 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,26 +1,12 @@
1
1
# wxSQLite3 - a lightweight wrapper for SQLite
2
2
3
-
**wxSQLite3** is a C++ wrapper around the public domain SQLite 3.x database
4
-
and is specifically designed for use in programs based on the wxWidgets
5
-
library.
6
-
7
-
**wxSQLite3** does not try to hide the underlying database, in contrary
8
-
almost all special features of the current SQLite3 version are
9
-
supported, like for example the creation of user defined scalar or
10
-
aggregate functions.
11
-
12
-
Since SQLite stores strings in UTF-8 encoding, the wxSQLite3 methods
13
-
provide automatic conversion between wxStrings and UTF-8 strings. This
14
-
works best for the Unicode builds of wxWidgets. In ANSI builds the
15
-
current locale conversion object (wxConvCurrent) is used for conversion
16
-
to/from UTF-8. Special care has to be taken if external administration
17
-
tools are used to modify the database contents, since not all of these
18
-
tools operate in Unicode or UTF-8 mode.
19
-
20
-
Since version 1.7.0 **wxSQLite3** includes a key-based SQLite3 encryption
21
-
extension using AES encryption. The decision whether to use 128 bit or
22
-
256 bit AES encryption had to be made at compile time. Starting with version
23
-
4.0.0 the encryption extension allows to select the cipher scheme at runtime.
3
+
**wxSQLite3** is a C++ wrapper around the public domain SQLite 3.x database and is specifically designed for use in programs based on the wxWidgets library.
4
+
5
+
**wxSQLite3** does not try to hide the underlying database, in contrary almost all special features of the current SQLite3 version are supported, like for example the creation of user defined scalar or aggregate functions.
6
+
7
+
Since SQLite stores strings in UTF-8 encoding, the wxSQLite3 methods provide automatic conversion between wxStrings and UTF-8 strings. This works best for the Unicode builds of wxWidgets. In ANSI builds the current locale conversion object (wxConvCurrent) is used for conversion to/from UTF-8. Special care has to be taken if external administration tools are used to modify the database contents, since not all of these tools operate in Unicode or UTF-8 mode.
8
+
9
+
Since version 1.7.0 **wxSQLite3** includes a key-based SQLite3 encryption extension using AES encryption. The decision whether to use 128 bit or 256 bit AES encryption had to be made at compile time. Starting with version 4.0.0 the encryption extension allows to select the cipher scheme at runtime.
24
10
25
11
Currently the following encryption schemes are supported:
26
12
@@ -52,9 +38,9 @@ Currently the _CMake_ support is experimental and limited to Windows platforms (
52
38
53
39
## <aname="history"></a>Version history
54
40
55
-
* 4.12.3 - *April 2026*
41
+
* 4.12.4 - *May 2026*
56
42
57
-
- Upgrade to SQLite3 Multiple Ciphers version 2.3.3 (SQLite version 3.53.0)
43
+
- Upgrade to SQLite3 Multiple Ciphers version 2.3.4 (SQLite version 3.53.1)
58
44
59
45
For further version information please consult the [CHANGELOG](CHANGELOG.md).
60
46
@@ -63,61 +49,34 @@ For further version information please consult the [CHANGELOG](CHANGELOG.md).
63
49
The build files for Windows platforms are now generated with
Ready to use project files are provided for Visual C++ 2010, 2012, 2013,
67
-
2015, 2017, 2019, and 2022. Additionally, GNU Makefiles are provided supporting for
68
-
example MinGW-w64.
52
+
Ready to use project files are provided for Visual C++ 2015, 2017, 2019, 2022, and 2026. Additionally, GNU Makefiles are provided supporting for example MinGW-w64.
69
53
70
-
For Visual Studio 2010+ solutions it is possible to customize the build
71
-
by creating a `wx_local.props` file in the build directory which is used,
72
-
if it exists, by the projects. The settings in that file override the
73
-
default values for the properties. The typical way to make the file is
74
-
to copy `wx_setup.props` to `wx_local.props` and then edit locally.
54
+
For the Visual Studio solutions it is possible to customize the build by creating a `wx_local.props` file in the build directory which is used, if it exists, by the projects. The settings in that file override the default values for the properties. The typical way to make the file is to copy `wx_setup.props` to `wx_local.props` and then edit locally.
75
55
76
-
For GNU Makefiles the file `config.gcc` serves the same purpose as the
77
-
file wx_setup.props for Visual C++ projects.
56
+
For GNU Makefiles the file `config.gcc` serves the same purpose as the file wx_setup.props for Visual C++ projects.
78
57
79
-
The customization files `wx_setup.props` resp. `config.gcc` allow to
80
-
customize certain settings like for example the version number and the
81
-
root directory of the wxWidgets library.
58
+
The customization files `wx_setup.props` resp. `config.gcc` allow to customize certain settings like for example the version number and the root directory of the wxWidgets library.
82
59
83
60
### wxMSW
84
61
85
-
When building on Win32 or Win64, you can use the makefiles or one of the
86
-
Microsoft Visual Studio solution files in the `build` folder.
62
+
When building on Win32 or Win64, you can use the makefiles or one of the Microsoft Visual Studio solution files in the `build` folder.
87
63
88
-
The Visual Studio solution files reference the property file `wx_setup.props`
89
-
in the build subdirectory. This file is configured in a way to allow running
90
-
AppVeyor CI without any modifications. Especially, specific library directories
91
-
are used for different compiler versions (as it is used by the pre-built
92
-
wxWidgets libraries) by adding the toolkit version (i.e., 141 for VS 2015,
93
-
142 for VS 2019) to the library path name.
64
+
The Visual Studio solution files reference the property file `wx_setup.props` in the build subdirectory. This file is configured in a way to allow running AppVeyor CI without any modifications. Especially, specific library directories are used for different compiler versions (as it is used by the pre-built wxWidgets libraries) by adding the toolkit version (i.e., 141 for VS 2015, 142 for VS 2019) to the library path name.
94
65
95
-
To get library path names without toolkit version (as you usually get when
96
-
compiling wxWidgets yourself) please adjust the 2 parameters `wxCompilerPrefix`
97
-
and `wxMsvcVersionAuto` in file `wx_setup.props` as follows:
66
+
To get library path names without toolkit version (as you usually get when compiling wxWidgets yourself) please adjust the 2 parameters `wxCompilerPrefix` and `wxMsvcVersionAuto` in file `wx_setup.props` as follows:
98
67
99
68
```
100
69
<wxCompilerPrefix>vc</wxCompilerPrefix>
101
70
<wxMsvcVersionAuto></wxMsvcVersionAuto>
102
71
```
103
72
104
-
Additionally, the property file assumes that the environment variable `WXWIN`
105
-
is defined and points to the root directory of the wxWidgets installation.
106
-
Make sure that `WXWIN` is set up properly, or replace it by a environment
107
-
variable of your choice or by an absolute path specification.
73
+
Additionally, the property file assumes that the environment variable `WXWIN` is defined and points to the root directory of the wxWidgets installation. Make sure that `WXWIN` is set up properly, or replace it by a environment variable of your choice or by an absolute path specification.
108
74
109
-
For Visual C++ the debugging properties are set up in such a way that
110
-
debugging the sample applications should work right out of the box. For
111
-
release builds you may need to copy the wxSQLite3 DLL or add the
112
-
`lib` folder path to the Windows search path (PATH environment variable).
75
+
For Visual C++ the debugging properties are set up in such a way that debugging the sample applications should work right out of the box. For release builds you may need to copy the wxSQLite3 DLL or add the `lib` folder path to the Windows search path (PATH environment variable).
113
76
114
-
The SQLite3 library is now compiled as an integrated part of wxSQLite3.
115
-
The advantage is that SQLite3 and wxSQLite3 are always compiled with
116
-
matching configuration options. Additionally, the SQLite3 encryption
117
-
extension is automatically enabled, too.
77
+
The SQLite3 library is now compiled as an integrated part of wxSQLite3. The advantage is that SQLite3 and wxSQLite3 are always compiled with matching configuration options. Additionally, the SQLite3 encryption extension is automatically enabled, too.
118
78
119
-
A precompiled SQLite shell program supporting encrypted
120
-
databases is provided as a separate download. Use
79
+
A precompiled SQLite shell program supporting encrypted databases is provided as a separate download. Use
121
80
```
122
81
PRAGMA KEY="encryption key";
123
82
```
@@ -129,8 +88,7 @@ to attach an encrypted database.
129
88
130
89
### wxGTK
131
90
132
-
When building on an autoconf-based system (like Linux/GNU-based
133
-
systems), the first setup is to recreate the configure script doing:
91
+
When building on an autoconf-based system (like Linux/GNU-based systems), the first setup is to recreate the configure script doing:
134
92
135
93
```
136
94
autoreconf
@@ -147,18 +105,13 @@ Thereafter you should create a build directory
147
105
148
106
Type `../configure --help` for more info.
149
107
150
-
The autoconf-based system also supports a `make install` target which
151
-
builds the library and then copies the headers of the component to
152
-
`/usr/local/include` and the lib to `/usr/local/lib`.
108
+
The autoconf-based system also supports a `make install` target which builds the library and then copies the headers of the component to `/usr/local/include` and the lib to `/usr/local/lib`.
153
109
154
110
## <aname="optional" />Optional features
155
111
156
-
SQLite has many optional features and offers a number of optional extensions.
157
-
The below table lists the features that are enabled for **wxSQLite3** as
158
-
default. For details, please see [SQLite Compile Time Options](https://www.sqlite.org/compile.html).
112
+
SQLite has many optional features and offers a number of optional extensions. The below table lists the features that are enabled for **wxSQLite3** as default. For details, please see [SQLite Compile Time Options](https://www.sqlite.org/compile.html).
159
113
160
-
In case of memory constraints it is of course possible to disable unneeded features.
161
-
However, this will usually require to modify the build files.
114
+
In case of memory constraints it is of course possible to disable unneeded features. However, this will usually require to modify the build files.
162
115
163
116
| Symbol | Description|
164
117
| :--- | :--- |
@@ -191,37 +144,26 @@ However, this will usually require to modify the build files.
191
144
192
145
## <aname="encryption" />Key based database encryption support
193
146
194
-
The public release of SQLite contains hooks for key based database
195
-
encryption, but the code for implementing this feature is not freely
196
-
available. D. Richard Hipp offers a commercial solution
197
-
(see [http://www.hwaci.com/sw/sqlite/prosupport.html#crypto](http://www.hwaci.com/sw/sqlite/prosupport.html#crypto)).
147
+
The public release of SQLite contains hooks for key based database encryption, but the code for implementing this feature is not freely available. D. Richard Hipp offers a commercial solution (see [http://www.hwaci.com/sw/sqlite/prosupport.html#crypto](http://www.hwaci.com/sw/sqlite/prosupport.html#crypto)).
198
148
199
149
There exist other closed-source commercial solutions, among them:
Both use a slightly different encryption API, which is currently _NOT_
205
-
supported by wxSQLite3.
154
+
Both use a slightly different encryption API, which is currently _NOT_ supported by wxSQLite3.
206
155
207
-
For Windows based systems there exists an open source solution:
208
-
[System.Data.SQLite](http://System.Data.SQLite.org). For SQLite version 3.32.0 or higher encryption support has been dropped.
209
-
However, the new encryption extension _SQLite3 Multiple Ciphers_ allows to use this encryption scheme on all supported platforms.
156
+
For Windows based systems there exists an open source solution: [System.Data.SQLite](http://System.Data.SQLite.org). For SQLite version 3.32.0 or higher encryption support has been dropped. However, the new encryption extension _SQLite3 Multiple Ciphers_ allows to use this encryption scheme on all supported platforms.
210
157
211
-
**wxSQLite3** uses now the new encryption extension [SQLite3 Multiple Ciphers](https://github.com/utelle/SQLite3MultipleCiphers).
212
-
Precompiled binaries of the SQLite3 DLL and the SQLite3 shell for Windows are now provided by this new separate project.
158
+
**wxSQLite3** uses now the new encryption extension [SQLite3 Multiple Ciphers](https://github.com/utelle/SQLite3MultipleCiphers). Precompiled binaries of the SQLite3 DLL and the SQLite3 shell for Windows are now provided by this new separate project.
213
159
214
160
## <aname="sqlite-static"></a>Using statically linked SQLite library on Windows
215
161
216
-
Starting with wxSQLite3 version 3.5.0 the SQLite3 library is compiled as an
217
-
integrated part of wxSQLite3. A separate SQLite3 DLL is not required any longer.
162
+
Starting with wxSQLite3 version 3.5.0 the SQLite3 library is compiled as an integrated part of wxSQLite3. A separate SQLite3 DLL is not required any longer.
218
163
219
164
## <aname="license" />License
220
165
221
-
**wxSQLite3** is free software: you can redistribute it and/or modify it
222
-
under the terms of the GNU Lesser General Public License version 3
223
-
or later as published by the Free Software Foundation,
224
-
with the wxWindows 3.1 exception.
166
+
**wxSQLite3** is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 or later as published by the Free Software Foundation, with the wxWindows 3.1 exception.
0 commit comments