wxSQLite3 5.0.0 (based on SQLite 3.53.4)
Changes since previous release
- First release in the 5.x series with a modernized C++ interface
- Upgrade to SQLite3 Multiple Ciphers version 2.5.0 (based on SQLite 3.53.4)
For further version information please consult the CHANGELOG.
Overview
wxSQLite3 5.x is a major update with a modernized C++ API. It is not fully source-compatible with wxSQLite3 4.x. Therefore, wxSQLite3 4.x will receive maintenance updates, including updates to the bundled SQLite version, for a limited period following the release of 5.0.0. No new API features will be added. The End-of-Life date of version 4.x will be announced separately.
Modern C++ API
The wxSQLite3 API has been extended with several features aimed at modern C++ development:
- Template-based methods for retrieving values from result sets
- Template-based methods for binding values to prepared statements
- Iterator support for
wxSQLite3::ResultSet - Support for range-based for loops when processing result sets
These features complement the existing wxSQLite3 API and allow result-set and prepared-statement code to be written in a more concise and type-oriented style.
The documentation section Modern C++ Interface presents the new features.
Breaking changes
- Requires at least a C++11 compiler
- The added modern API methods require C++17 (omitted, if the compiler does not support C++17)
- Introduces namespace
wxSQLite3(instead of name prefixwxSQLite3in class names)
Example:wxSQLite3DatebasebecomeswxSQLite3::Database. - Replaces reference-counted reference classes for databases, prepared statements, and blobs by handle classes managed by
shared_ptrs - Uses
enum classinstead of justenum - Most symbol names shortened by removing prefixes like
WXSQLITE_ - Uses
constexprinstead of#definefor various symbols - Uses
usinginstead oftypedef - Uses
nullptrinstead ofNULLsymbol - Derives exception class from
std::runtime_error - Removes methods for accessing the user authentication extension. The extension was officially deprecated by the SQLite developer team.
See Migrating from 4.x to 5.x for details.