No version for distro humble showing github. Known supported distros are highlighted in the buttons above.
Package symbol

SQLiteCpp package from sqlitecpp repo

SQLiteCpp

ROS Distro
github

Package Summary

Tags No category tags.
Version 3.3.3
License MIT
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
Checkout URI https://github.com/srombauts/sqlitecpp.git
VCS Type git
VCS Version master
Last Updated 2025-07-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A smart and easy to use C++ SQLite3 wrapper.

Additional Links

No additional links.

Maintainers

  • Sébastien Rombauts

Authors

  • Sébastien Rombauts

SQLiteC++

release license Travis CI Linux Build Status AppVeyor Windows Build status GitHub Actions Build status Coveralls Coverity Join the chat at https://gitter.im/SRombauts/SQLiteCpp

SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper.

About SQLiteC++:

SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.

License:

Copyright (c) 2012-2025 Sébastien Rombauts (sebastien.rombauts@gmail.com)

Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)

Note on redistribution of SQLite source files

As stated by the MIT License, you are welcome to reuse, modify, and redistribute the SQLiteCpp source code the way you want it to, be it a git submodule, a subdirectory, or a selection of some source files.

I would love a mention in your README, a web link to the SQLite repository, and a mention of the author, but none of those are mandatory.

About SQLite underlying library:

SQLite is a library that implements a serverless transactional SQL database engine. It is the most widely deployed SQL database engine in the world. All of the code and documentation in SQLite has been dedicated to the public domain by the authors. http://www.sqlite.org/about.html

The goals of SQLiteC++ are:

  • to offer the best of the existing simple C++ SQLite wrappers
  • to be elegantly written with good C++11 design, STL, exceptions and RAII idiom
  • to keep dependencies to a minimum (C++11 STL and SQLite3)
  • to be portable
  • to be light and fast
  • to be thread-safe only as much as SQLite “Multi-thread” mode (see below)
  • to have a good unit test coverage
  • to use API names sticking with those of the SQLite library
  • to be well documented with Doxygen tags, and with some good examples
  • to be well maintained
  • to use a permissive MIT license, similar to BSD or Boost, for proprietary/commercial usage

It is designed using the Resource Acquisition Is Initialization (RAII) idiom (see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization), and throwing exceptions in case of SQLite errors (except in destructors, where assert() are used instead). Each SQLiteC++ object must be constructed with a valid SQLite database connection, and then is always valid until destroyed.

Supported platforms:

Now requires a C++11 compiler. Use branch sqlitecpp-2.x for latest pre-C++11 developments.

Developments and tests are done under the following OSs:

  • Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions)
  • Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions)
  • MacOS 10.11 and 11.7 (Travis CI and Github Actions)
  • Valgrind memcheck tool

And the following IDEs/Compilers

  • GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17)
  • Clang 5 and 7 (Travis CI)
  • AppleClang 8, 9 and 13 (Travis CI and Github Actions)
  • Xcode 8 & 9 (Travis CI)
  • Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions)

Dependencies

  • a modern C++11 STL implementation with GCC, Clang, or Visual Studio 2015
  • exception support (the class Exception inherits from std::runtime_error)
  • the SQLite library (3.7.15 minimum from 2012-12-12) either by linking to it dynamically or statically (install the libsqlite3-dev package under Debian/Ubuntu/Mint Linux), or by adding its source file in your project code base (source code provided in src/sqlite3 for Windows), with the SQLITE_ENABLE_COLUMN_METADATA macro defined (see http://www.sqlite.org/compile.html#enable_column_metadata).

Getting started

Installation

To use this wrapper, you need to add the SQLiteC++ source files from the src/ directory in your project code base, and compile/link against the sqlite library.

The easiest way to do this is to add the wrapper as a library. The “CMakeLists.txt” file defining the static library is provided in the root directory, so you simply have to add_subdirectory(SQLiteCpp) to you main CMakeLists.txt and link to the “SQLiteCpp” wrapper library.

File truncated at 100 lines see the full file

CHANGELOG

2012 Mar 30

  • Start of a new thin C++ SQLite wrapper

2012 Apr 2

  • The wrapper is functional
  • Added documentation and examples
  • Publication on GitHub

Version 0.1.0 - 2012 Apr 4

  • Added a Database::exec() method to execute simple SQL statement
  • Added a version number like in sqlite3.h, starting with 0.1.0

Version 0.2.0 - 2012 Apr 11

  • Added getLastInsertId() and setBusyTimout()
  • Added bind() by name methods

Version 0.3.0 - 2012 Apr 16

  • Added an easy wrapper Database::execAngGet()

Version 0.4.0 - 2012 Apr 23

  • Added a Database::tableExists() easy to use function

Dec 10 2012

  • Added a Statement::exec() method to execute a one-step query with no expected result

Version 0.5.0 - 2013 March 9

  • Added assert() on errors on destructors
  • Added getBytes()
  • Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull
  • Added bind() for binary blob data

Version 0.5.1 - 2013 April 7

  • Added Column::getName()

Version 0.6.0 - 2013 November 22

  • Renamed Column::getName() to Column::getOriginName()
  • Added Column::getName()

Version 0.7.0 - 2014 January 9

  • Added Database::createFunction()
  • Added std::string version of existing APIs
  • Improved CMake with more build options and Doxygen auto-detection

Version 0.8.0 - 2014 February 26

  • Database constructor support opening a database with a custom VFS (default to NULL)
  • Changed Column::getText() to return empty string “” by default instead of NULL pointer (to handle std::string conversion)

Version 1.0.0 - 2015 May 3

  • Public headers file moved to include/ dir
  • Added support to biicode in CMakeLists.txt
  • Added Unit Tests
  • Added aBusyTimeoutMs parameter to Database() constructors
  • Added Database::getTotalChanges()
  • Added Database::getErrorCode()
  • Added Statement::clearBindings()
  • Added Statement::getColumn(aName)
  • Added Statement::getErrorCode()
  • Added Statement::getColumnName(aIndex)
  • Added Statement::getColumnOriginName(aIndex)

Version 1.1.0 - 2015 May 18

  • Fixed valgrind error on Database destructor
  • Added Database::loadExtension

Version 1.2.0 - 2015 September 9

  • Fixed build with GCC 5.1.0
  • Fixed MSVC release build warning
  • Fixed CppDepends warnings
  • Updated documentation on installation
  • Added Database::getHandle()

Version 1.3.0 - 2015 November 1

  • Fixed build with Visual Studio 2015
  • Further improvements to README
  • Added Backup class

Version 1.3.1 - 2016 February 10

  • Switch Linux/Mac build to the provided SQLite3 C library
  • Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
  • Remove warnings
  • Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)

Version 2.0.0 - 2016 July 25

  • Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18)
  • Move #include from headers to .cpp files only using forward declarations
  • Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code
  • Add getLibVersion() and getLibVersionNumber() to get runtime version of the library
  • Better exception messages when Statements fail PR #84
  • Variadic templates for bind() (C++14) PR #85
  • Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86
  • Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86
  • Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason
  • Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount()
  • Remove Column::errmsg() method : use Database or Statement equivalents
  • More unit tests, with code coverage status on the GitHub page
  • Do not force MSVC to use static runtime if unit-tests are not build

Version 2.1.0 - 2017 July 18

  • Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08)
  • Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125

File truncated at 100 lines see the full file

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged SQLiteCpp at Robotics Stack Exchange

No version for distro jazzy showing github. Known supported distros are highlighted in the buttons above.
Package symbol

SQLiteCpp package from sqlitecpp repo

SQLiteCpp

ROS Distro
github

Package Summary

Tags No category tags.
Version 3.3.3
License MIT
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
Checkout URI https://github.com/srombauts/sqlitecpp.git
VCS Type git
VCS Version master
Last Updated 2025-07-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A smart and easy to use C++ SQLite3 wrapper.

Additional Links

No additional links.

Maintainers

  • Sébastien Rombauts

Authors

  • Sébastien Rombauts

SQLiteC++

release license Travis CI Linux Build Status AppVeyor Windows Build status GitHub Actions Build status Coveralls Coverity Join the chat at https://gitter.im/SRombauts/SQLiteCpp

SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper.

About SQLiteC++:

SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.

License:

Copyright (c) 2012-2025 Sébastien Rombauts (sebastien.rombauts@gmail.com)

Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)

Note on redistribution of SQLite source files

As stated by the MIT License, you are welcome to reuse, modify, and redistribute the SQLiteCpp source code the way you want it to, be it a git submodule, a subdirectory, or a selection of some source files.

I would love a mention in your README, a web link to the SQLite repository, and a mention of the author, but none of those are mandatory.

About SQLite underlying library:

SQLite is a library that implements a serverless transactional SQL database engine. It is the most widely deployed SQL database engine in the world. All of the code and documentation in SQLite has been dedicated to the public domain by the authors. http://www.sqlite.org/about.html

The goals of SQLiteC++ are:

  • to offer the best of the existing simple C++ SQLite wrappers
  • to be elegantly written with good C++11 design, STL, exceptions and RAII idiom
  • to keep dependencies to a minimum (C++11 STL and SQLite3)
  • to be portable
  • to be light and fast
  • to be thread-safe only as much as SQLite “Multi-thread” mode (see below)
  • to have a good unit test coverage
  • to use API names sticking with those of the SQLite library
  • to be well documented with Doxygen tags, and with some good examples
  • to be well maintained
  • to use a permissive MIT license, similar to BSD or Boost, for proprietary/commercial usage

It is designed using the Resource Acquisition Is Initialization (RAII) idiom (see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization), and throwing exceptions in case of SQLite errors (except in destructors, where assert() are used instead). Each SQLiteC++ object must be constructed with a valid SQLite database connection, and then is always valid until destroyed.

Supported platforms:

Now requires a C++11 compiler. Use branch sqlitecpp-2.x for latest pre-C++11 developments.

Developments and tests are done under the following OSs:

  • Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions)
  • Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions)
  • MacOS 10.11 and 11.7 (Travis CI and Github Actions)
  • Valgrind memcheck tool

And the following IDEs/Compilers

  • GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17)
  • Clang 5 and 7 (Travis CI)
  • AppleClang 8, 9 and 13 (Travis CI and Github Actions)
  • Xcode 8 & 9 (Travis CI)
  • Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions)

Dependencies

  • a modern C++11 STL implementation with GCC, Clang, or Visual Studio 2015
  • exception support (the class Exception inherits from std::runtime_error)
  • the SQLite library (3.7.15 minimum from 2012-12-12) either by linking to it dynamically or statically (install the libsqlite3-dev package under Debian/Ubuntu/Mint Linux), or by adding its source file in your project code base (source code provided in src/sqlite3 for Windows), with the SQLITE_ENABLE_COLUMN_METADATA macro defined (see http://www.sqlite.org/compile.html#enable_column_metadata).

Getting started

Installation

To use this wrapper, you need to add the SQLiteC++ source files from the src/ directory in your project code base, and compile/link against the sqlite library.

The easiest way to do this is to add the wrapper as a library. The “CMakeLists.txt” file defining the static library is provided in the root directory, so you simply have to add_subdirectory(SQLiteCpp) to you main CMakeLists.txt and link to the “SQLiteCpp” wrapper library.

File truncated at 100 lines see the full file

CHANGELOG

2012 Mar 30

  • Start of a new thin C++ SQLite wrapper

2012 Apr 2

  • The wrapper is functional
  • Added documentation and examples
  • Publication on GitHub

Version 0.1.0 - 2012 Apr 4

  • Added a Database::exec() method to execute simple SQL statement
  • Added a version number like in sqlite3.h, starting with 0.1.0

Version 0.2.0 - 2012 Apr 11

  • Added getLastInsertId() and setBusyTimout()
  • Added bind() by name methods

Version 0.3.0 - 2012 Apr 16

  • Added an easy wrapper Database::execAngGet()

Version 0.4.0 - 2012 Apr 23

  • Added a Database::tableExists() easy to use function

Dec 10 2012

  • Added a Statement::exec() method to execute a one-step query with no expected result

Version 0.5.0 - 2013 March 9

  • Added assert() on errors on destructors
  • Added getBytes()
  • Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull
  • Added bind() for binary blob data

Version 0.5.1 - 2013 April 7

  • Added Column::getName()

Version 0.6.0 - 2013 November 22

  • Renamed Column::getName() to Column::getOriginName()
  • Added Column::getName()

Version 0.7.0 - 2014 January 9

  • Added Database::createFunction()
  • Added std::string version of existing APIs
  • Improved CMake with more build options and Doxygen auto-detection

Version 0.8.0 - 2014 February 26

  • Database constructor support opening a database with a custom VFS (default to NULL)
  • Changed Column::getText() to return empty string “” by default instead of NULL pointer (to handle std::string conversion)

Version 1.0.0 - 2015 May 3

  • Public headers file moved to include/ dir
  • Added support to biicode in CMakeLists.txt
  • Added Unit Tests
  • Added aBusyTimeoutMs parameter to Database() constructors
  • Added Database::getTotalChanges()
  • Added Database::getErrorCode()
  • Added Statement::clearBindings()
  • Added Statement::getColumn(aName)
  • Added Statement::getErrorCode()
  • Added Statement::getColumnName(aIndex)
  • Added Statement::getColumnOriginName(aIndex)

Version 1.1.0 - 2015 May 18

  • Fixed valgrind error on Database destructor
  • Added Database::loadExtension

Version 1.2.0 - 2015 September 9

  • Fixed build with GCC 5.1.0
  • Fixed MSVC release build warning
  • Fixed CppDepends warnings
  • Updated documentation on installation
  • Added Database::getHandle()

Version 1.3.0 - 2015 November 1

  • Fixed build with Visual Studio 2015
  • Further improvements to README
  • Added Backup class

Version 1.3.1 - 2016 February 10

  • Switch Linux/Mac build to the provided SQLite3 C library
  • Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
  • Remove warnings
  • Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)

Version 2.0.0 - 2016 July 25

  • Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18)
  • Move #include from headers to .cpp files only using forward declarations
  • Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code
  • Add getLibVersion() and getLibVersionNumber() to get runtime version of the library
  • Better exception messages when Statements fail PR #84
  • Variadic templates for bind() (C++14) PR #85
  • Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86
  • Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86
  • Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason
  • Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount()
  • Remove Column::errmsg() method : use Database or Statement equivalents
  • More unit tests, with code coverage status on the GitHub page
  • Do not force MSVC to use static runtime if unit-tests are not build

Version 2.1.0 - 2017 July 18

  • Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08)
  • Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125

File truncated at 100 lines see the full file

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged SQLiteCpp at Robotics Stack Exchange

No version for distro kilted showing github. Known supported distros are highlighted in the buttons above.
Package symbol

SQLiteCpp package from sqlitecpp repo

SQLiteCpp

ROS Distro
github

Package Summary

Tags No category tags.
Version 3.3.3
License MIT
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
Checkout URI https://github.com/srombauts/sqlitecpp.git
VCS Type git
VCS Version master
Last Updated 2025-07-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A smart and easy to use C++ SQLite3 wrapper.

Additional Links

No additional links.

Maintainers

  • Sébastien Rombauts

Authors

  • Sébastien Rombauts

SQLiteC++

release license Travis CI Linux Build Status AppVeyor Windows Build status GitHub Actions Build status Coveralls Coverity Join the chat at https://gitter.im/SRombauts/SQLiteCpp

SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper.

About SQLiteC++:

SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.

License:

Copyright (c) 2012-2025 Sébastien Rombauts (sebastien.rombauts@gmail.com)

Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)

Note on redistribution of SQLite source files

As stated by the MIT License, you are welcome to reuse, modify, and redistribute the SQLiteCpp source code the way you want it to, be it a git submodule, a subdirectory, or a selection of some source files.

I would love a mention in your README, a web link to the SQLite repository, and a mention of the author, but none of those are mandatory.

About SQLite underlying library:

SQLite is a library that implements a serverless transactional SQL database engine. It is the most widely deployed SQL database engine in the world. All of the code and documentation in SQLite has been dedicated to the public domain by the authors. http://www.sqlite.org/about.html

The goals of SQLiteC++ are:

  • to offer the best of the existing simple C++ SQLite wrappers
  • to be elegantly written with good C++11 design, STL, exceptions and RAII idiom
  • to keep dependencies to a minimum (C++11 STL and SQLite3)
  • to be portable
  • to be light and fast
  • to be thread-safe only as much as SQLite “Multi-thread” mode (see below)
  • to have a good unit test coverage
  • to use API names sticking with those of the SQLite library
  • to be well documented with Doxygen tags, and with some good examples
  • to be well maintained
  • to use a permissive MIT license, similar to BSD or Boost, for proprietary/commercial usage

It is designed using the Resource Acquisition Is Initialization (RAII) idiom (see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization), and throwing exceptions in case of SQLite errors (except in destructors, where assert() are used instead). Each SQLiteC++ object must be constructed with a valid SQLite database connection, and then is always valid until destroyed.

Supported platforms:

Now requires a C++11 compiler. Use branch sqlitecpp-2.x for latest pre-C++11 developments.

Developments and tests are done under the following OSs:

  • Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions)
  • Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions)
  • MacOS 10.11 and 11.7 (Travis CI and Github Actions)
  • Valgrind memcheck tool

And the following IDEs/Compilers

  • GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17)
  • Clang 5 and 7 (Travis CI)
  • AppleClang 8, 9 and 13 (Travis CI and Github Actions)
  • Xcode 8 & 9 (Travis CI)
  • Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions)

Dependencies

  • a modern C++11 STL implementation with GCC, Clang, or Visual Studio 2015
  • exception support (the class Exception inherits from std::runtime_error)
  • the SQLite library (3.7.15 minimum from 2012-12-12) either by linking to it dynamically or statically (install the libsqlite3-dev package under Debian/Ubuntu/Mint Linux), or by adding its source file in your project code base (source code provided in src/sqlite3 for Windows), with the SQLITE_ENABLE_COLUMN_METADATA macro defined (see http://www.sqlite.org/compile.html#enable_column_metadata).

Getting started

Installation

To use this wrapper, you need to add the SQLiteC++ source files from the src/ directory in your project code base, and compile/link against the sqlite library.

The easiest way to do this is to add the wrapper as a library. The “CMakeLists.txt” file defining the static library is provided in the root directory, so you simply have to add_subdirectory(SQLiteCpp) to you main CMakeLists.txt and link to the “SQLiteCpp” wrapper library.

File truncated at 100 lines see the full file

CHANGELOG

2012 Mar 30

  • Start of a new thin C++ SQLite wrapper

2012 Apr 2

  • The wrapper is functional
  • Added documentation and examples
  • Publication on GitHub

Version 0.1.0 - 2012 Apr 4

  • Added a Database::exec() method to execute simple SQL statement
  • Added a version number like in sqlite3.h, starting with 0.1.0

Version 0.2.0 - 2012 Apr 11

  • Added getLastInsertId() and setBusyTimout()
  • Added bind() by name methods

Version 0.3.0 - 2012 Apr 16

  • Added an easy wrapper Database::execAngGet()

Version 0.4.0 - 2012 Apr 23

  • Added a Database::tableExists() easy to use function

Dec 10 2012

  • Added a Statement::exec() method to execute a one-step query with no expected result

Version 0.5.0 - 2013 March 9

  • Added assert() on errors on destructors
  • Added getBytes()
  • Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull
  • Added bind() for binary blob data

Version 0.5.1 - 2013 April 7

  • Added Column::getName()

Version 0.6.0 - 2013 November 22

  • Renamed Column::getName() to Column::getOriginName()
  • Added Column::getName()

Version 0.7.0 - 2014 January 9

  • Added Database::createFunction()
  • Added std::string version of existing APIs
  • Improved CMake with more build options and Doxygen auto-detection

Version 0.8.0 - 2014 February 26

  • Database constructor support opening a database with a custom VFS (default to NULL)
  • Changed Column::getText() to return empty string “” by default instead of NULL pointer (to handle std::string conversion)

Version 1.0.0 - 2015 May 3

  • Public headers file moved to include/ dir
  • Added support to biicode in CMakeLists.txt
  • Added Unit Tests
  • Added aBusyTimeoutMs parameter to Database() constructors
  • Added Database::getTotalChanges()
  • Added Database::getErrorCode()
  • Added Statement::clearBindings()
  • Added Statement::getColumn(aName)
  • Added Statement::getErrorCode()
  • Added Statement::getColumnName(aIndex)
  • Added Statement::getColumnOriginName(aIndex)

Version 1.1.0 - 2015 May 18

  • Fixed valgrind error on Database destructor
  • Added Database::loadExtension

Version 1.2.0 - 2015 September 9

  • Fixed build with GCC 5.1.0
  • Fixed MSVC release build warning
  • Fixed CppDepends warnings
  • Updated documentation on installation
  • Added Database::getHandle()

Version 1.3.0 - 2015 November 1

  • Fixed build with Visual Studio 2015
  • Further improvements to README
  • Added Backup class

Version 1.3.1 - 2016 February 10

  • Switch Linux/Mac build to the provided SQLite3 C library
  • Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
  • Remove warnings
  • Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)

Version 2.0.0 - 2016 July 25

  • Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18)
  • Move #include from headers to .cpp files only using forward declarations
  • Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code
  • Add getLibVersion() and getLibVersionNumber() to get runtime version of the library
  • Better exception messages when Statements fail PR #84
  • Variadic templates for bind() (C++14) PR #85
  • Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86
  • Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86
  • Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason
  • Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount()
  • Remove Column::errmsg() method : use Database or Statement equivalents
  • More unit tests, with code coverage status on the GitHub page
  • Do not force MSVC to use static runtime if unit-tests are not build

Version 2.1.0 - 2017 July 18

  • Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08)
  • Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125

File truncated at 100 lines see the full file

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged SQLiteCpp at Robotics Stack Exchange

No version for distro rolling showing github. Known supported distros are highlighted in the buttons above.
Package symbol

SQLiteCpp package from sqlitecpp repo

SQLiteCpp

ROS Distro
github

Package Summary

Tags No category tags.
Version 3.3.3
License MIT
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
Checkout URI https://github.com/srombauts/sqlitecpp.git
VCS Type git
VCS Version master
Last Updated 2025-07-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A smart and easy to use C++ SQLite3 wrapper.

Additional Links

No additional links.

Maintainers

  • Sébastien Rombauts

Authors

  • Sébastien Rombauts

SQLiteC++

release license Travis CI Linux Build Status AppVeyor Windows Build status GitHub Actions Build status Coveralls Coverity Join the chat at https://gitter.im/SRombauts/SQLiteCpp

SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper.

About SQLiteC++:

SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.

License:

Copyright (c) 2012-2025 Sébastien Rombauts (sebastien.rombauts@gmail.com)

Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)

Note on redistribution of SQLite source files

As stated by the MIT License, you are welcome to reuse, modify, and redistribute the SQLiteCpp source code the way you want it to, be it a git submodule, a subdirectory, or a selection of some source files.

I would love a mention in your README, a web link to the SQLite repository, and a mention of the author, but none of those are mandatory.

About SQLite underlying library:

SQLite is a library that implements a serverless transactional SQL database engine. It is the most widely deployed SQL database engine in the world. All of the code and documentation in SQLite has been dedicated to the public domain by the authors. http://www.sqlite.org/about.html

The goals of SQLiteC++ are:

  • to offer the best of the existing simple C++ SQLite wrappers
  • to be elegantly written with good C++11 design, STL, exceptions and RAII idiom
  • to keep dependencies to a minimum (C++11 STL and SQLite3)
  • to be portable
  • to be light and fast
  • to be thread-safe only as much as SQLite “Multi-thread” mode (see below)
  • to have a good unit test coverage
  • to use API names sticking with those of the SQLite library
  • to be well documented with Doxygen tags, and with some good examples
  • to be well maintained
  • to use a permissive MIT license, similar to BSD or Boost, for proprietary/commercial usage

It is designed using the Resource Acquisition Is Initialization (RAII) idiom (see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization), and throwing exceptions in case of SQLite errors (except in destructors, where assert() are used instead). Each SQLiteC++ object must be constructed with a valid SQLite database connection, and then is always valid until destroyed.

Supported platforms:

Now requires a C++11 compiler. Use branch sqlitecpp-2.x for latest pre-C++11 developments.

Developments and tests are done under the following OSs:

  • Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions)
  • Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions)
  • MacOS 10.11 and 11.7 (Travis CI and Github Actions)
  • Valgrind memcheck tool

And the following IDEs/Compilers

  • GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17)
  • Clang 5 and 7 (Travis CI)
  • AppleClang 8, 9 and 13 (Travis CI and Github Actions)
  • Xcode 8 & 9 (Travis CI)
  • Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions)

Dependencies

  • a modern C++11 STL implementation with GCC, Clang, or Visual Studio 2015
  • exception support (the class Exception inherits from std::runtime_error)
  • the SQLite library (3.7.15 minimum from 2012-12-12) either by linking to it dynamically or statically (install the libsqlite3-dev package under Debian/Ubuntu/Mint Linux), or by adding its source file in your project code base (source code provided in src/sqlite3 for Windows), with the SQLITE_ENABLE_COLUMN_METADATA macro defined (see http://www.sqlite.org/compile.html#enable_column_metadata).

Getting started

Installation

To use this wrapper, you need to add the SQLiteC++ source files from the src/ directory in your project code base, and compile/link against the sqlite library.

The easiest way to do this is to add the wrapper as a library. The “CMakeLists.txt” file defining the static library is provided in the root directory, so you simply have to add_subdirectory(SQLiteCpp) to you main CMakeLists.txt and link to the “SQLiteCpp” wrapper library.

File truncated at 100 lines see the full file

CHANGELOG

2012 Mar 30

  • Start of a new thin C++ SQLite wrapper

2012 Apr 2

  • The wrapper is functional
  • Added documentation and examples
  • Publication on GitHub

Version 0.1.0 - 2012 Apr 4

  • Added a Database::exec() method to execute simple SQL statement
  • Added a version number like in sqlite3.h, starting with 0.1.0

Version 0.2.0 - 2012 Apr 11

  • Added getLastInsertId() and setBusyTimout()
  • Added bind() by name methods

Version 0.3.0 - 2012 Apr 16

  • Added an easy wrapper Database::execAngGet()

Version 0.4.0 - 2012 Apr 23

  • Added a Database::tableExists() easy to use function

Dec 10 2012

  • Added a Statement::exec() method to execute a one-step query with no expected result

Version 0.5.0 - 2013 March 9

  • Added assert() on errors on destructors
  • Added getBytes()
  • Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull
  • Added bind() for binary blob data

Version 0.5.1 - 2013 April 7

  • Added Column::getName()

Version 0.6.0 - 2013 November 22

  • Renamed Column::getName() to Column::getOriginName()
  • Added Column::getName()

Version 0.7.0 - 2014 January 9

  • Added Database::createFunction()
  • Added std::string version of existing APIs
  • Improved CMake with more build options and Doxygen auto-detection

Version 0.8.0 - 2014 February 26

  • Database constructor support opening a database with a custom VFS (default to NULL)
  • Changed Column::getText() to return empty string “” by default instead of NULL pointer (to handle std::string conversion)

Version 1.0.0 - 2015 May 3

  • Public headers file moved to include/ dir
  • Added support to biicode in CMakeLists.txt
  • Added Unit Tests
  • Added aBusyTimeoutMs parameter to Database() constructors
  • Added Database::getTotalChanges()
  • Added Database::getErrorCode()
  • Added Statement::clearBindings()
  • Added Statement::getColumn(aName)
  • Added Statement::getErrorCode()
  • Added Statement::getColumnName(aIndex)
  • Added Statement::getColumnOriginName(aIndex)

Version 1.1.0 - 2015 May 18

  • Fixed valgrind error on Database destructor
  • Added Database::loadExtension

Version 1.2.0 - 2015 September 9

  • Fixed build with GCC 5.1.0
  • Fixed MSVC release build warning
  • Fixed CppDepends warnings
  • Updated documentation on installation
  • Added Database::getHandle()

Version 1.3.0 - 2015 November 1

  • Fixed build with Visual Studio 2015
  • Further improvements to README
  • Added Backup class

Version 1.3.1 - 2016 February 10

  • Switch Linux/Mac build to the provided SQLite3 C library
  • Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
  • Remove warnings
  • Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)

Version 2.0.0 - 2016 July 25

  • Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18)
  • Move #include from headers to .cpp files only using forward declarations
  • Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code
  • Add getLibVersion() and getLibVersionNumber() to get runtime version of the library
  • Better exception messages when Statements fail PR #84
  • Variadic templates for bind() (C++14) PR #85
  • Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86
  • Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86
  • Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason
  • Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount()
  • Remove Column::errmsg() method : use Database or Statement equivalents
  • More unit tests, with code coverage status on the GitHub page
  • Do not force MSVC to use static runtime if unit-tests are not build

Version 2.1.0 - 2017 July 18

  • Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08)
  • Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125

File truncated at 100 lines see the full file

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged SQLiteCpp at Robotics Stack Exchange

Package symbol

SQLiteCpp package from sqlitecpp repo

SQLiteCpp

ROS Distro
github

Package Summary

Tags No category tags.
Version 3.3.3
License MIT
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
Checkout URI https://github.com/srombauts/sqlitecpp.git
VCS Type git
VCS Version master
Last Updated 2025-07-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A smart and easy to use C++ SQLite3 wrapper.

Additional Links

No additional links.

Maintainers

  • Sébastien Rombauts

Authors

  • Sébastien Rombauts

SQLiteC++

release license Travis CI Linux Build Status AppVeyor Windows Build status GitHub Actions Build status Coveralls Coverity Join the chat at https://gitter.im/SRombauts/SQLiteCpp

SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper.

About SQLiteC++:

SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.

License:

Copyright (c) 2012-2025 Sébastien Rombauts (sebastien.rombauts@gmail.com)

Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)

Note on redistribution of SQLite source files

As stated by the MIT License, you are welcome to reuse, modify, and redistribute the SQLiteCpp source code the way you want it to, be it a git submodule, a subdirectory, or a selection of some source files.

I would love a mention in your README, a web link to the SQLite repository, and a mention of the author, but none of those are mandatory.

About SQLite underlying library:

SQLite is a library that implements a serverless transactional SQL database engine. It is the most widely deployed SQL database engine in the world. All of the code and documentation in SQLite has been dedicated to the public domain by the authors. http://www.sqlite.org/about.html

The goals of SQLiteC++ are:

  • to offer the best of the existing simple C++ SQLite wrappers
  • to be elegantly written with good C++11 design, STL, exceptions and RAII idiom
  • to keep dependencies to a minimum (C++11 STL and SQLite3)
  • to be portable
  • to be light and fast
  • to be thread-safe only as much as SQLite “Multi-thread” mode (see below)
  • to have a good unit test coverage
  • to use API names sticking with those of the SQLite library
  • to be well documented with Doxygen tags, and with some good examples
  • to be well maintained
  • to use a permissive MIT license, similar to BSD or Boost, for proprietary/commercial usage

It is designed using the Resource Acquisition Is Initialization (RAII) idiom (see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization), and throwing exceptions in case of SQLite errors (except in destructors, where assert() are used instead). Each SQLiteC++ object must be constructed with a valid SQLite database connection, and then is always valid until destroyed.

Supported platforms:

Now requires a C++11 compiler. Use branch sqlitecpp-2.x for latest pre-C++11 developments.

Developments and tests are done under the following OSs:

  • Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions)
  • Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions)
  • MacOS 10.11 and 11.7 (Travis CI and Github Actions)
  • Valgrind memcheck tool

And the following IDEs/Compilers

  • GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17)
  • Clang 5 and 7 (Travis CI)
  • AppleClang 8, 9 and 13 (Travis CI and Github Actions)
  • Xcode 8 & 9 (Travis CI)
  • Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions)

Dependencies

  • a modern C++11 STL implementation with GCC, Clang, or Visual Studio 2015
  • exception support (the class Exception inherits from std::runtime_error)
  • the SQLite library (3.7.15 minimum from 2012-12-12) either by linking to it dynamically or statically (install the libsqlite3-dev package under Debian/Ubuntu/Mint Linux), or by adding its source file in your project code base (source code provided in src/sqlite3 for Windows), with the SQLITE_ENABLE_COLUMN_METADATA macro defined (see http://www.sqlite.org/compile.html#enable_column_metadata).

Getting started

Installation

To use this wrapper, you need to add the SQLiteC++ source files from the src/ directory in your project code base, and compile/link against the sqlite library.

The easiest way to do this is to add the wrapper as a library. The “CMakeLists.txt” file defining the static library is provided in the root directory, so you simply have to add_subdirectory(SQLiteCpp) to you main CMakeLists.txt and link to the “SQLiteCpp” wrapper library.

File truncated at 100 lines see the full file

CHANGELOG

2012 Mar 30

  • Start of a new thin C++ SQLite wrapper

2012 Apr 2

  • The wrapper is functional
  • Added documentation and examples
  • Publication on GitHub

Version 0.1.0 - 2012 Apr 4

  • Added a Database::exec() method to execute simple SQL statement
  • Added a version number like in sqlite3.h, starting with 0.1.0

Version 0.2.0 - 2012 Apr 11

  • Added getLastInsertId() and setBusyTimout()
  • Added bind() by name methods

Version 0.3.0 - 2012 Apr 16

  • Added an easy wrapper Database::execAngGet()

Version 0.4.0 - 2012 Apr 23

  • Added a Database::tableExists() easy to use function

Dec 10 2012

  • Added a Statement::exec() method to execute a one-step query with no expected result

Version 0.5.0 - 2013 March 9

  • Added assert() on errors on destructors
  • Added getBytes()
  • Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull
  • Added bind() for binary blob data

Version 0.5.1 - 2013 April 7

  • Added Column::getName()

Version 0.6.0 - 2013 November 22

  • Renamed Column::getName() to Column::getOriginName()
  • Added Column::getName()

Version 0.7.0 - 2014 January 9

  • Added Database::createFunction()
  • Added std::string version of existing APIs
  • Improved CMake with more build options and Doxygen auto-detection

Version 0.8.0 - 2014 February 26

  • Database constructor support opening a database with a custom VFS (default to NULL)
  • Changed Column::getText() to return empty string “” by default instead of NULL pointer (to handle std::string conversion)

Version 1.0.0 - 2015 May 3

  • Public headers file moved to include/ dir
  • Added support to biicode in CMakeLists.txt
  • Added Unit Tests
  • Added aBusyTimeoutMs parameter to Database() constructors
  • Added Database::getTotalChanges()
  • Added Database::getErrorCode()
  • Added Statement::clearBindings()
  • Added Statement::getColumn(aName)
  • Added Statement::getErrorCode()
  • Added Statement::getColumnName(aIndex)
  • Added Statement::getColumnOriginName(aIndex)

Version 1.1.0 - 2015 May 18

  • Fixed valgrind error on Database destructor
  • Added Database::loadExtension

Version 1.2.0 - 2015 September 9

  • Fixed build with GCC 5.1.0
  • Fixed MSVC release build warning
  • Fixed CppDepends warnings
  • Updated documentation on installation
  • Added Database::getHandle()

Version 1.3.0 - 2015 November 1

  • Fixed build with Visual Studio 2015
  • Further improvements to README
  • Added Backup class

Version 1.3.1 - 2016 February 10

  • Switch Linux/Mac build to the provided SQLite3 C library
  • Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
  • Remove warnings
  • Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)

Version 2.0.0 - 2016 July 25

  • Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18)
  • Move #include from headers to .cpp files only using forward declarations
  • Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code
  • Add getLibVersion() and getLibVersionNumber() to get runtime version of the library
  • Better exception messages when Statements fail PR #84
  • Variadic templates for bind() (C++14) PR #85
  • Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86
  • Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86
  • Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason
  • Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount()
  • Remove Column::errmsg() method : use Database or Statement equivalents
  • More unit tests, with code coverage status on the GitHub page
  • Do not force MSVC to use static runtime if unit-tests are not build

Version 2.1.0 - 2017 July 18

  • Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08)
  • Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125

File truncated at 100 lines see the full file

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged SQLiteCpp at Robotics Stack Exchange

No version for distro galactic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

SQLiteCpp package from sqlitecpp repo

SQLiteCpp

ROS Distro
github

Package Summary

Tags No category tags.
Version 3.3.3
License MIT
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
Checkout URI https://github.com/srombauts/sqlitecpp.git
VCS Type git
VCS Version master
Last Updated 2025-07-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A smart and easy to use C++ SQLite3 wrapper.

Additional Links

No additional links.

Maintainers

  • Sébastien Rombauts

Authors

  • Sébastien Rombauts

SQLiteC++

release license Travis CI Linux Build Status AppVeyor Windows Build status GitHub Actions Build status Coveralls Coverity Join the chat at https://gitter.im/SRombauts/SQLiteCpp

SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper.

About SQLiteC++:

SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.

License:

Copyright (c) 2012-2025 Sébastien Rombauts (sebastien.rombauts@gmail.com)

Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)

Note on redistribution of SQLite source files

As stated by the MIT License, you are welcome to reuse, modify, and redistribute the SQLiteCpp source code the way you want it to, be it a git submodule, a subdirectory, or a selection of some source files.

I would love a mention in your README, a web link to the SQLite repository, and a mention of the author, but none of those are mandatory.

About SQLite underlying library:

SQLite is a library that implements a serverless transactional SQL database engine. It is the most widely deployed SQL database engine in the world. All of the code and documentation in SQLite has been dedicated to the public domain by the authors. http://www.sqlite.org/about.html

The goals of SQLiteC++ are:

  • to offer the best of the existing simple C++ SQLite wrappers
  • to be elegantly written with good C++11 design, STL, exceptions and RAII idiom
  • to keep dependencies to a minimum (C++11 STL and SQLite3)
  • to be portable
  • to be light and fast
  • to be thread-safe only as much as SQLite “Multi-thread” mode (see below)
  • to have a good unit test coverage
  • to use API names sticking with those of the SQLite library
  • to be well documented with Doxygen tags, and with some good examples
  • to be well maintained
  • to use a permissive MIT license, similar to BSD or Boost, for proprietary/commercial usage

It is designed using the Resource Acquisition Is Initialization (RAII) idiom (see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization), and throwing exceptions in case of SQLite errors (except in destructors, where assert() are used instead). Each SQLiteC++ object must be constructed with a valid SQLite database connection, and then is always valid until destroyed.

Supported platforms:

Now requires a C++11 compiler. Use branch sqlitecpp-2.x for latest pre-C++11 developments.

Developments and tests are done under the following OSs:

  • Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions)
  • Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions)
  • MacOS 10.11 and 11.7 (Travis CI and Github Actions)
  • Valgrind memcheck tool

And the following IDEs/Compilers

  • GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17)
  • Clang 5 and 7 (Travis CI)
  • AppleClang 8, 9 and 13 (Travis CI and Github Actions)
  • Xcode 8 & 9 (Travis CI)
  • Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions)

Dependencies

  • a modern C++11 STL implementation with GCC, Clang, or Visual Studio 2015
  • exception support (the class Exception inherits from std::runtime_error)
  • the SQLite library (3.7.15 minimum from 2012-12-12) either by linking to it dynamically or statically (install the libsqlite3-dev package under Debian/Ubuntu/Mint Linux), or by adding its source file in your project code base (source code provided in src/sqlite3 for Windows), with the SQLITE_ENABLE_COLUMN_METADATA macro defined (see http://www.sqlite.org/compile.html#enable_column_metadata).

Getting started

Installation

To use this wrapper, you need to add the SQLiteC++ source files from the src/ directory in your project code base, and compile/link against the sqlite library.

The easiest way to do this is to add the wrapper as a library. The “CMakeLists.txt” file defining the static library is provided in the root directory, so you simply have to add_subdirectory(SQLiteCpp) to you main CMakeLists.txt and link to the “SQLiteCpp” wrapper library.

File truncated at 100 lines see the full file

CHANGELOG

2012 Mar 30

  • Start of a new thin C++ SQLite wrapper

2012 Apr 2

  • The wrapper is functional
  • Added documentation and examples
  • Publication on GitHub

Version 0.1.0 - 2012 Apr 4

  • Added a Database::exec() method to execute simple SQL statement
  • Added a version number like in sqlite3.h, starting with 0.1.0

Version 0.2.0 - 2012 Apr 11

  • Added getLastInsertId() and setBusyTimout()
  • Added bind() by name methods

Version 0.3.0 - 2012 Apr 16

  • Added an easy wrapper Database::execAngGet()

Version 0.4.0 - 2012 Apr 23

  • Added a Database::tableExists() easy to use function

Dec 10 2012

  • Added a Statement::exec() method to execute a one-step query with no expected result

Version 0.5.0 - 2013 March 9

  • Added assert() on errors on destructors
  • Added getBytes()
  • Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull
  • Added bind() for binary blob data

Version 0.5.1 - 2013 April 7

  • Added Column::getName()

Version 0.6.0 - 2013 November 22

  • Renamed Column::getName() to Column::getOriginName()
  • Added Column::getName()

Version 0.7.0 - 2014 January 9

  • Added Database::createFunction()
  • Added std::string version of existing APIs
  • Improved CMake with more build options and Doxygen auto-detection

Version 0.8.0 - 2014 February 26

  • Database constructor support opening a database with a custom VFS (default to NULL)
  • Changed Column::getText() to return empty string “” by default instead of NULL pointer (to handle std::string conversion)

Version 1.0.0 - 2015 May 3

  • Public headers file moved to include/ dir
  • Added support to biicode in CMakeLists.txt
  • Added Unit Tests
  • Added aBusyTimeoutMs parameter to Database() constructors
  • Added Database::getTotalChanges()
  • Added Database::getErrorCode()
  • Added Statement::clearBindings()
  • Added Statement::getColumn(aName)
  • Added Statement::getErrorCode()
  • Added Statement::getColumnName(aIndex)
  • Added Statement::getColumnOriginName(aIndex)

Version 1.1.0 - 2015 May 18

  • Fixed valgrind error on Database destructor
  • Added Database::loadExtension

Version 1.2.0 - 2015 September 9

  • Fixed build with GCC 5.1.0
  • Fixed MSVC release build warning
  • Fixed CppDepends warnings
  • Updated documentation on installation
  • Added Database::getHandle()

Version 1.3.0 - 2015 November 1

  • Fixed build with Visual Studio 2015
  • Further improvements to README
  • Added Backup class

Version 1.3.1 - 2016 February 10

  • Switch Linux/Mac build to the provided SQLite3 C library
  • Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
  • Remove warnings
  • Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)

Version 2.0.0 - 2016 July 25

  • Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18)
  • Move #include from headers to .cpp files only using forward declarations
  • Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code
  • Add getLibVersion() and getLibVersionNumber() to get runtime version of the library
  • Better exception messages when Statements fail PR #84
  • Variadic templates for bind() (C++14) PR #85
  • Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86
  • Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86
  • Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason
  • Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount()
  • Remove Column::errmsg() method : use Database or Statement equivalents
  • More unit tests, with code coverage status on the GitHub page
  • Do not force MSVC to use static runtime if unit-tests are not build

Version 2.1.0 - 2017 July 18

  • Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08)
  • Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125

File truncated at 100 lines see the full file

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged SQLiteCpp at Robotics Stack Exchange

No version for distro iron showing github. Known supported distros are highlighted in the buttons above.
Package symbol

SQLiteCpp package from sqlitecpp repo

SQLiteCpp

ROS Distro
github

Package Summary

Tags No category tags.
Version 3.3.3
License MIT
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
Checkout URI https://github.com/srombauts/sqlitecpp.git
VCS Type git
VCS Version master
Last Updated 2025-07-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A smart and easy to use C++ SQLite3 wrapper.

Additional Links

No additional links.

Maintainers

  • Sébastien Rombauts

Authors

  • Sébastien Rombauts

SQLiteC++

release license Travis CI Linux Build Status AppVeyor Windows Build status GitHub Actions Build status Coveralls Coverity Join the chat at https://gitter.im/SRombauts/SQLiteCpp

SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper.

About SQLiteC++:

SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.

License:

Copyright (c) 2012-2025 Sébastien Rombauts (sebastien.rombauts@gmail.com)

Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)

Note on redistribution of SQLite source files

As stated by the MIT License, you are welcome to reuse, modify, and redistribute the SQLiteCpp source code the way you want it to, be it a git submodule, a subdirectory, or a selection of some source files.

I would love a mention in your README, a web link to the SQLite repository, and a mention of the author, but none of those are mandatory.

About SQLite underlying library:

SQLite is a library that implements a serverless transactional SQL database engine. It is the most widely deployed SQL database engine in the world. All of the code and documentation in SQLite has been dedicated to the public domain by the authors. http://www.sqlite.org/about.html

The goals of SQLiteC++ are:

  • to offer the best of the existing simple C++ SQLite wrappers
  • to be elegantly written with good C++11 design, STL, exceptions and RAII idiom
  • to keep dependencies to a minimum (C++11 STL and SQLite3)
  • to be portable
  • to be light and fast
  • to be thread-safe only as much as SQLite “Multi-thread” mode (see below)
  • to have a good unit test coverage
  • to use API names sticking with those of the SQLite library
  • to be well documented with Doxygen tags, and with some good examples
  • to be well maintained
  • to use a permissive MIT license, similar to BSD or Boost, for proprietary/commercial usage

It is designed using the Resource Acquisition Is Initialization (RAII) idiom (see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization), and throwing exceptions in case of SQLite errors (except in destructors, where assert() are used instead). Each SQLiteC++ object must be constructed with a valid SQLite database connection, and then is always valid until destroyed.

Supported platforms:

Now requires a C++11 compiler. Use branch sqlitecpp-2.x for latest pre-C++11 developments.

Developments and tests are done under the following OSs:

  • Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions)
  • Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions)
  • MacOS 10.11 and 11.7 (Travis CI and Github Actions)
  • Valgrind memcheck tool

And the following IDEs/Compilers

  • GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17)
  • Clang 5 and 7 (Travis CI)
  • AppleClang 8, 9 and 13 (Travis CI and Github Actions)
  • Xcode 8 & 9 (Travis CI)
  • Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions)

Dependencies

  • a modern C++11 STL implementation with GCC, Clang, or Visual Studio 2015
  • exception support (the class Exception inherits from std::runtime_error)
  • the SQLite library (3.7.15 minimum from 2012-12-12) either by linking to it dynamically or statically (install the libsqlite3-dev package under Debian/Ubuntu/Mint Linux), or by adding its source file in your project code base (source code provided in src/sqlite3 for Windows), with the SQLITE_ENABLE_COLUMN_METADATA macro defined (see http://www.sqlite.org/compile.html#enable_column_metadata).

Getting started

Installation

To use this wrapper, you need to add the SQLiteC++ source files from the src/ directory in your project code base, and compile/link against the sqlite library.

The easiest way to do this is to add the wrapper as a library. The “CMakeLists.txt” file defining the static library is provided in the root directory, so you simply have to add_subdirectory(SQLiteCpp) to you main CMakeLists.txt and link to the “SQLiteCpp” wrapper library.

File truncated at 100 lines see the full file

CHANGELOG

2012 Mar 30

  • Start of a new thin C++ SQLite wrapper

2012 Apr 2

  • The wrapper is functional
  • Added documentation and examples
  • Publication on GitHub

Version 0.1.0 - 2012 Apr 4

  • Added a Database::exec() method to execute simple SQL statement
  • Added a version number like in sqlite3.h, starting with 0.1.0

Version 0.2.0 - 2012 Apr 11

  • Added getLastInsertId() and setBusyTimout()
  • Added bind() by name methods

Version 0.3.0 - 2012 Apr 16

  • Added an easy wrapper Database::execAngGet()

Version 0.4.0 - 2012 Apr 23

  • Added a Database::tableExists() easy to use function

Dec 10 2012

  • Added a Statement::exec() method to execute a one-step query with no expected result

Version 0.5.0 - 2013 March 9

  • Added assert() on errors on destructors
  • Added getBytes()
  • Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull
  • Added bind() for binary blob data

Version 0.5.1 - 2013 April 7

  • Added Column::getName()

Version 0.6.0 - 2013 November 22

  • Renamed Column::getName() to Column::getOriginName()
  • Added Column::getName()

Version 0.7.0 - 2014 January 9

  • Added Database::createFunction()
  • Added std::string version of existing APIs
  • Improved CMake with more build options and Doxygen auto-detection

Version 0.8.0 - 2014 February 26

  • Database constructor support opening a database with a custom VFS (default to NULL)
  • Changed Column::getText() to return empty string “” by default instead of NULL pointer (to handle std::string conversion)

Version 1.0.0 - 2015 May 3

  • Public headers file moved to include/ dir
  • Added support to biicode in CMakeLists.txt
  • Added Unit Tests
  • Added aBusyTimeoutMs parameter to Database() constructors
  • Added Database::getTotalChanges()
  • Added Database::getErrorCode()
  • Added Statement::clearBindings()
  • Added Statement::getColumn(aName)
  • Added Statement::getErrorCode()
  • Added Statement::getColumnName(aIndex)
  • Added Statement::getColumnOriginName(aIndex)

Version 1.1.0 - 2015 May 18

  • Fixed valgrind error on Database destructor
  • Added Database::loadExtension

Version 1.2.0 - 2015 September 9

  • Fixed build with GCC 5.1.0
  • Fixed MSVC release build warning
  • Fixed CppDepends warnings
  • Updated documentation on installation
  • Added Database::getHandle()

Version 1.3.0 - 2015 November 1

  • Fixed build with Visual Studio 2015
  • Further improvements to README
  • Added Backup class

Version 1.3.1 - 2016 February 10

  • Switch Linux/Mac build to the provided SQLite3 C library
  • Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
  • Remove warnings
  • Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)

Version 2.0.0 - 2016 July 25

  • Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18)
  • Move #include from headers to .cpp files only using forward declarations
  • Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code
  • Add getLibVersion() and getLibVersionNumber() to get runtime version of the library
  • Better exception messages when Statements fail PR #84
  • Variadic templates for bind() (C++14) PR #85
  • Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86
  • Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86
  • Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason
  • Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount()
  • Remove Column::errmsg() method : use Database or Statement equivalents
  • More unit tests, with code coverage status on the GitHub page
  • Do not force MSVC to use static runtime if unit-tests are not build

Version 2.1.0 - 2017 July 18

  • Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08)
  • Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125

File truncated at 100 lines see the full file

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged SQLiteCpp at Robotics Stack Exchange

No version for distro melodic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

SQLiteCpp package from sqlitecpp repo

SQLiteCpp

ROS Distro
github

Package Summary

Tags No category tags.
Version 3.3.3
License MIT
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
Checkout URI https://github.com/srombauts/sqlitecpp.git
VCS Type git
VCS Version master
Last Updated 2025-07-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A smart and easy to use C++ SQLite3 wrapper.

Additional Links

No additional links.

Maintainers

  • Sébastien Rombauts

Authors

  • Sébastien Rombauts

SQLiteC++

release license Travis CI Linux Build Status AppVeyor Windows Build status GitHub Actions Build status Coveralls Coverity Join the chat at https://gitter.im/SRombauts/SQLiteCpp

SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper.

About SQLiteC++:

SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.

License:

Copyright (c) 2012-2025 Sébastien Rombauts (sebastien.rombauts@gmail.com)

Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)

Note on redistribution of SQLite source files

As stated by the MIT License, you are welcome to reuse, modify, and redistribute the SQLiteCpp source code the way you want it to, be it a git submodule, a subdirectory, or a selection of some source files.

I would love a mention in your README, a web link to the SQLite repository, and a mention of the author, but none of those are mandatory.

About SQLite underlying library:

SQLite is a library that implements a serverless transactional SQL database engine. It is the most widely deployed SQL database engine in the world. All of the code and documentation in SQLite has been dedicated to the public domain by the authors. http://www.sqlite.org/about.html

The goals of SQLiteC++ are:

  • to offer the best of the existing simple C++ SQLite wrappers
  • to be elegantly written with good C++11 design, STL, exceptions and RAII idiom
  • to keep dependencies to a minimum (C++11 STL and SQLite3)
  • to be portable
  • to be light and fast
  • to be thread-safe only as much as SQLite “Multi-thread” mode (see below)
  • to have a good unit test coverage
  • to use API names sticking with those of the SQLite library
  • to be well documented with Doxygen tags, and with some good examples
  • to be well maintained
  • to use a permissive MIT license, similar to BSD or Boost, for proprietary/commercial usage

It is designed using the Resource Acquisition Is Initialization (RAII) idiom (see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization), and throwing exceptions in case of SQLite errors (except in destructors, where assert() are used instead). Each SQLiteC++ object must be constructed with a valid SQLite database connection, and then is always valid until destroyed.

Supported platforms:

Now requires a C++11 compiler. Use branch sqlitecpp-2.x for latest pre-C++11 developments.

Developments and tests are done under the following OSs:

  • Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions)
  • Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions)
  • MacOS 10.11 and 11.7 (Travis CI and Github Actions)
  • Valgrind memcheck tool

And the following IDEs/Compilers

  • GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17)
  • Clang 5 and 7 (Travis CI)
  • AppleClang 8, 9 and 13 (Travis CI and Github Actions)
  • Xcode 8 & 9 (Travis CI)
  • Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions)

Dependencies

  • a modern C++11 STL implementation with GCC, Clang, or Visual Studio 2015
  • exception support (the class Exception inherits from std::runtime_error)
  • the SQLite library (3.7.15 minimum from 2012-12-12) either by linking to it dynamically or statically (install the libsqlite3-dev package under Debian/Ubuntu/Mint Linux), or by adding its source file in your project code base (source code provided in src/sqlite3 for Windows), with the SQLITE_ENABLE_COLUMN_METADATA macro defined (see http://www.sqlite.org/compile.html#enable_column_metadata).

Getting started

Installation

To use this wrapper, you need to add the SQLiteC++ source files from the src/ directory in your project code base, and compile/link against the sqlite library.

The easiest way to do this is to add the wrapper as a library. The “CMakeLists.txt” file defining the static library is provided in the root directory, so you simply have to add_subdirectory(SQLiteCpp) to you main CMakeLists.txt and link to the “SQLiteCpp” wrapper library.

File truncated at 100 lines see the full file

CHANGELOG

2012 Mar 30

  • Start of a new thin C++ SQLite wrapper

2012 Apr 2

  • The wrapper is functional
  • Added documentation and examples
  • Publication on GitHub

Version 0.1.0 - 2012 Apr 4

  • Added a Database::exec() method to execute simple SQL statement
  • Added a version number like in sqlite3.h, starting with 0.1.0

Version 0.2.0 - 2012 Apr 11

  • Added getLastInsertId() and setBusyTimout()
  • Added bind() by name methods

Version 0.3.0 - 2012 Apr 16

  • Added an easy wrapper Database::execAngGet()

Version 0.4.0 - 2012 Apr 23

  • Added a Database::tableExists() easy to use function

Dec 10 2012

  • Added a Statement::exec() method to execute a one-step query with no expected result

Version 0.5.0 - 2013 March 9

  • Added assert() on errors on destructors
  • Added getBytes()
  • Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull
  • Added bind() for binary blob data

Version 0.5.1 - 2013 April 7

  • Added Column::getName()

Version 0.6.0 - 2013 November 22

  • Renamed Column::getName() to Column::getOriginName()
  • Added Column::getName()

Version 0.7.0 - 2014 January 9

  • Added Database::createFunction()
  • Added std::string version of existing APIs
  • Improved CMake with more build options and Doxygen auto-detection

Version 0.8.0 - 2014 February 26

  • Database constructor support opening a database with a custom VFS (default to NULL)
  • Changed Column::getText() to return empty string “” by default instead of NULL pointer (to handle std::string conversion)

Version 1.0.0 - 2015 May 3

  • Public headers file moved to include/ dir
  • Added support to biicode in CMakeLists.txt
  • Added Unit Tests
  • Added aBusyTimeoutMs parameter to Database() constructors
  • Added Database::getTotalChanges()
  • Added Database::getErrorCode()
  • Added Statement::clearBindings()
  • Added Statement::getColumn(aName)
  • Added Statement::getErrorCode()
  • Added Statement::getColumnName(aIndex)
  • Added Statement::getColumnOriginName(aIndex)

Version 1.1.0 - 2015 May 18

  • Fixed valgrind error on Database destructor
  • Added Database::loadExtension

Version 1.2.0 - 2015 September 9

  • Fixed build with GCC 5.1.0
  • Fixed MSVC release build warning
  • Fixed CppDepends warnings
  • Updated documentation on installation
  • Added Database::getHandle()

Version 1.3.0 - 2015 November 1

  • Fixed build with Visual Studio 2015
  • Further improvements to README
  • Added Backup class

Version 1.3.1 - 2016 February 10

  • Switch Linux/Mac build to the provided SQLite3 C library
  • Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
  • Remove warnings
  • Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)

Version 2.0.0 - 2016 July 25

  • Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18)
  • Move #include from headers to .cpp files only using forward declarations
  • Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code
  • Add getLibVersion() and getLibVersionNumber() to get runtime version of the library
  • Better exception messages when Statements fail PR #84
  • Variadic templates for bind() (C++14) PR #85
  • Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86
  • Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86
  • Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason
  • Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount()
  • Remove Column::errmsg() method : use Database or Statement equivalents
  • More unit tests, with code coverage status on the GitHub page
  • Do not force MSVC to use static runtime if unit-tests are not build

Version 2.1.0 - 2017 July 18

  • Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08)
  • Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125

File truncated at 100 lines see the full file

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged SQLiteCpp at Robotics Stack Exchange

No version for distro noetic showing github. Known supported distros are highlighted in the buttons above.
Package symbol

SQLiteCpp package from sqlitecpp repo

SQLiteCpp

ROS Distro
github

Package Summary

Tags No category tags.
Version 3.3.3
License MIT
Build type CMAKE
Use RECOMMENDED

Repository Summary

Description SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
Checkout URI https://github.com/srombauts/sqlitecpp.git
VCS Type git
VCS Version master
Last Updated 2025-07-13
Dev Status UNKNOWN
Released UNRELEASED
Tags No category tags.
Contributing Help Wanted (-)
Good First Issues (-)
Pull Requests to Review (-)

Package Description

A smart and easy to use C++ SQLite3 wrapper.

Additional Links

No additional links.

Maintainers

  • Sébastien Rombauts

Authors

  • Sébastien Rombauts

SQLiteC++

release license Travis CI Linux Build Status AppVeyor Windows Build status GitHub Actions Build status Coveralls Coverity Join the chat at https://gitter.im/SRombauts/SQLiteCpp

SQLiteC++ (SQLiteCpp) is a lean and easy to use C++ SQLite3 wrapper.

About SQLiteC++:

SQLiteC++ offers an encapsulation around the native C APIs of SQLite, with a few intuitive and well documented C++ classes.

License:

Copyright (c) 2012-2025 Sébastien Rombauts (sebastien.rombauts@gmail.com)

Distributed under the MIT License (MIT) (See accompanying file LICENSE.txt or copy at http://opensource.org/licenses/MIT)

Note on redistribution of SQLite source files

As stated by the MIT License, you are welcome to reuse, modify, and redistribute the SQLiteCpp source code the way you want it to, be it a git submodule, a subdirectory, or a selection of some source files.

I would love a mention in your README, a web link to the SQLite repository, and a mention of the author, but none of those are mandatory.

About SQLite underlying library:

SQLite is a library that implements a serverless transactional SQL database engine. It is the most widely deployed SQL database engine in the world. All of the code and documentation in SQLite has been dedicated to the public domain by the authors. http://www.sqlite.org/about.html

The goals of SQLiteC++ are:

  • to offer the best of the existing simple C++ SQLite wrappers
  • to be elegantly written with good C++11 design, STL, exceptions and RAII idiom
  • to keep dependencies to a minimum (C++11 STL and SQLite3)
  • to be portable
  • to be light and fast
  • to be thread-safe only as much as SQLite “Multi-thread” mode (see below)
  • to have a good unit test coverage
  • to use API names sticking with those of the SQLite library
  • to be well documented with Doxygen tags, and with some good examples
  • to be well maintained
  • to use a permissive MIT license, similar to BSD or Boost, for proprietary/commercial usage

It is designed using the Resource Acquisition Is Initialization (RAII) idiom (see http://en.wikipedia.org/wiki/Resource_Acquisition_Is_Initialization), and throwing exceptions in case of SQLite errors (except in destructors, where assert() are used instead). Each SQLiteC++ object must be constructed with a valid SQLite database connection, and then is always valid until destroyed.

Supported platforms:

Now requires a C++11 compiler. Use branch sqlitecpp-2.x for latest pre-C++11 developments.

Developments and tests are done under the following OSs:

  • Ubuntu 14.04, 16.04 and 18.04 (Travis CI and Github Actions)
  • Windows 10, and Windows Server 2012 R2, Windows Server 2016, Windows Server 2022 (AppVeyor and Github Actions)
  • MacOS 10.11 and 11.7 (Travis CI and Github Actions)
  • Valgrind memcheck tool

And the following IDEs/Compilers

  • GCC 4.8.4, 5.3.0, 7.1.1 and latest eg 9.4 (C++11, C++14, C++17)
  • Clang 5 and 7 (Travis CI)
  • AppleClang 8, 9 and 13 (Travis CI and Github Actions)
  • Xcode 8 & 9 (Travis CI)
  • Visual Studio Community/Entreprise 2022, 2019, 2017, and 2015 (AppVeyor and Github Actions)

Dependencies

  • a modern C++11 STL implementation with GCC, Clang, or Visual Studio 2015
  • exception support (the class Exception inherits from std::runtime_error)
  • the SQLite library (3.7.15 minimum from 2012-12-12) either by linking to it dynamically or statically (install the libsqlite3-dev package under Debian/Ubuntu/Mint Linux), or by adding its source file in your project code base (source code provided in src/sqlite3 for Windows), with the SQLITE_ENABLE_COLUMN_METADATA macro defined (see http://www.sqlite.org/compile.html#enable_column_metadata).

Getting started

Installation

To use this wrapper, you need to add the SQLiteC++ source files from the src/ directory in your project code base, and compile/link against the sqlite library.

The easiest way to do this is to add the wrapper as a library. The “CMakeLists.txt” file defining the static library is provided in the root directory, so you simply have to add_subdirectory(SQLiteCpp) to you main CMakeLists.txt and link to the “SQLiteCpp” wrapper library.

File truncated at 100 lines see the full file

CHANGELOG

2012 Mar 30

  • Start of a new thin C++ SQLite wrapper

2012 Apr 2

  • The wrapper is functional
  • Added documentation and examples
  • Publication on GitHub

Version 0.1.0 - 2012 Apr 4

  • Added a Database::exec() method to execute simple SQL statement
  • Added a version number like in sqlite3.h, starting with 0.1.0

Version 0.2.0 - 2012 Apr 11

  • Added getLastInsertId() and setBusyTimout()
  • Added bind() by name methods

Version 0.3.0 - 2012 Apr 16

  • Added an easy wrapper Database::execAngGet()

Version 0.4.0 - 2012 Apr 23

  • Added a Database::tableExists() easy to use function

Dec 10 2012

  • Added a Statement::exec() method to execute a one-step query with no expected result

Version 0.5.0 - 2013 March 9

  • Added assert() on errors on destructors
  • Added getBytes()
  • Added getBlob(), getType() and isInteger/isFloat/isText/isBlob/isNull
  • Added bind() for binary blob data

Version 0.5.1 - 2013 April 7

  • Added Column::getName()

Version 0.6.0 - 2013 November 22

  • Renamed Column::getName() to Column::getOriginName()
  • Added Column::getName()

Version 0.7.0 - 2014 January 9

  • Added Database::createFunction()
  • Added std::string version of existing APIs
  • Improved CMake with more build options and Doxygen auto-detection

Version 0.8.0 - 2014 February 26

  • Database constructor support opening a database with a custom VFS (default to NULL)
  • Changed Column::getText() to return empty string “” by default instead of NULL pointer (to handle std::string conversion)

Version 1.0.0 - 2015 May 3

  • Public headers file moved to include/ dir
  • Added support to biicode in CMakeLists.txt
  • Added Unit Tests
  • Added aBusyTimeoutMs parameter to Database() constructors
  • Added Database::getTotalChanges()
  • Added Database::getErrorCode()
  • Added Statement::clearBindings()
  • Added Statement::getColumn(aName)
  • Added Statement::getErrorCode()
  • Added Statement::getColumnName(aIndex)
  • Added Statement::getColumnOriginName(aIndex)

Version 1.1.0 - 2015 May 18

  • Fixed valgrind error on Database destructor
  • Added Database::loadExtension

Version 1.2.0 - 2015 September 9

  • Fixed build with GCC 5.1.0
  • Fixed MSVC release build warning
  • Fixed CppDepends warnings
  • Updated documentation on installation
  • Added Database::getHandle()

Version 1.3.0 - 2015 November 1

  • Fixed build with Visual Studio 2015
  • Further improvements to README
  • Added Backup class

Version 1.3.1 - 2016 February 10

  • Switch Linux/Mac build to the provided SQLite3 C library
  • Update SQLite3 from 3.8.8.3 to latest 3.10.2 (2016-01-20)
  • Remove warnings
  • Remove biicode support (defunct service, servers will shutdown the 16th of February 2016)

Version 2.0.0 - 2016 July 25

  • Update SQLite3 from 3.10.2 to latest 3.13 (2016-05-18)
  • Move #include from headers to .cpp files only using forward declarations
  • Add Database::VERSION to reach SQLITE_VERSION without including sqlite3.h in application code
  • Add getLibVersion() and getLibVersionNumber() to get runtime version of the library
  • Better exception messages when Statements fail PR #84
  • Variadic templates for bind() (C++14) PR #85
  • Add Statement::bindNoCopy() methods for strings, using SQLITE_STATIC to avoid internal copy by SQLite3 PR #86
  • Add Statement::bind() overload for uint32_t, and Column::getUint() and cast operator to uint32_t PR #86
  • Use the new SQLITE_DBCONFIG_ENABLE_LOAD_EXTENSION from SQLite 3.13 for security reason
  • Rename Backup::remainingPageCount()/totalPageCount() to Backup::getRemainingPageCount()/getTotalPageCount()
  • Remove Column::errmsg() method : use Database or Statement equivalents
  • More unit tests, with code coverage status on the GitHub page
  • Do not force MSVC to use static runtime if unit-tests are not build

Version 2.1.0 - 2017 July 18

  • Update SQLite3 from 3.13 to latest 3.19.3 (2017-06-08)
  • Fixed Incompatibility in 3.19.0 (to use older SQLite version set the CMake variable SQLITE_USE_LEGACY_STRUCT) #125

File truncated at 100 lines see the full file

Package Dependencies

No dependencies on ROS packages.

System Dependencies

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged SQLiteCpp at Robotics Stack Exchange