Tntdb ===== Tntdb is a c++-class-library for easy access to databases. The interface is database-independent. Driverclasses are loaded dynamically. The goal is to have easy access to databases. You don't have to worry about resourceleakage, because all objects you use directly are allocated on the stack and deleted automatically, when going out of scope. The interfaceobjects are wrappers to referencecounted instances, so you can copy them around at your own will. Resources are freed, when the last object goes out of scope. Errorhandling is done exclusively with exceptionhandling. Just wrap your code with a single try-catch and you have full errorhandling. All exceptions are derived from std::exception. STL is used where possible and also STL-like and -compatible interfaces are offered, where suitable. Tntdb is targeted for application programming. It is not suitable for generic databasetools. It does not offer e.g. schemaquery. You have to know, how your tables look like. Thats true for normal applications. You use SQL for databaseaccess. No wrapperclasses like active resultsets or databound controls are offered. Instead you have best control over the database. You can use every SQL-trick you know to get most out of your database. Also this is a thin wrapper, so that you should have no big performancepenalty compared to direct access to the C-API. The project started already some years ago as a postgresql-wrapper. Later I added a sqlite-3-wrapper. The public headers include documentation, which can be generated using Doxygen. Also there are some small examples in the demo-directory. Installation ============ To install tntdb, you need cxxtools (http://www.tntnet.org/). This version needs at least cxxtools version 1.4 You can find generic installation instructions in the file INSTALL. To disable SQLite support (enabled by default) do ./configure --with-sqlite=no To disable MySQL support (enabled by default) do ./configure --with-mysql=no To disable Postgresql support (enabled by default) do ./configure --with-postgresql=no To disable replication driver (enabled by default) do ./configure --with-replicate=no To enable Oracle-support (disabled by default) do ./configure --with-oracle
Tntdb is a c++-class-library for easy access to databases
Overview
Comments
-
Runtime error with g++10
In file tntdb/src/librarymanager.cpp I found out on my Debian 11 with g++10, that the following is not working anymore:
std::string d = DRIVERDIR + cxxtools::Directory::sep() + libraryPrefix + driverName; log_debug("loading library \"" << d << '"'); lib = cxxtools::Library(d);
To get it work, I have changed the code to:
std::string d(DRIVERDIR); d += cxxtools::Directory::sep() + libraryPrefix + driverName; log_debug("loading library \"" << d << '"'); lib = cxxtools::Library(d);
Best regards, Sven
-
Connection error
Hello,
We updated tntdb this morning with the latest version. Now we get the following error when connecting to postgresql :
failed to load driver "tntdb5-postgresql"
Jean-Marc.
-
Forward declare class Cursor
Class Cursor is referentiated as "friend" in the Statement class. Without the forward declaration of class Cursor, tntdb won't compile (AIX 6.1, xlC_r)
-
tntdb on Ubuntu on Windows 10: Erros with MySQL
My installed versions: I have downloaded and installed the cxxtools-, tntnet- and tntdb-master.zip's this week on my client.
My client: Bash on Ubuntu on Windows 10 (Creators update, 03-2017) gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 ldd (Ubuntu GLIBC 2.23-0ubuntu7) 2.23 For the "tntnet" command to be able to start I had to deactivate TCP_ACCEPT_DEFER (I commented the whole block in configure.ac).
The "tntdb-test" command is working fine on my client with sqlite3 3.11.0
But some of the asserts fail with my db server in my lan. Most are looking to be not important (testDouble, ininity, longval, ...). But there are two issues that are scaring me.
My db server: Linux kernel 2.6.32 (Mips cpu) Debian 6.0.10 MySQL 5.1.73-1 (Debian)
Issue 1: base::testTransaction: ASSERTION at base-test.cpp:371 not equal: value1 (count)= <3> value2 (2)= <2>
Issue 2: types::testNull: OK types::testBool: EXCEPTION Mysql-Error 2014 in mysql_query: Commands out of sync; you can't run this command now types::testShort: EXCEPTION Mysql-Error 2014 in mysql_query: Commands out of sync; you can't run this command now types::testInt: EXCEPTION Mysql-Error 2014 in mysql_query: Commands out of sync; you can't run this command now types::testLong: EXCEPTION Mysql-Error 2014 in mysql_query: Commands out of sync; you can't run this command now types::testUnsignedShort: EXCEPTION Mysql-Error 2014 in mysql_query: Commands out of sync; you can't run this command now ... types::testBlob: OK types::testDate: OK
-
Please release 1.4 or add pkg-config patch to 1.3
Related to some issue in pulling automatically dependencies for a project (tntdb here), we still depend on 1.3 and fail due to the missing pkg-config support. Going with master produce compilation failure.
Please release 1.4 or accept PR #10 for branch 1.3 (really needed on that branch) thx a lot and enjoy the end of the year celebrations
Verneuil is a VFS extension for SQLite that asynchronously replicates databases to S3-compatible blob stores.
Verneuil: streaming replication for sqlite Verneuil1 [vɛʁnœj] is a VFS (OS abstraction layer) for sqlite that accesses local database files like the d
SOCI - The C++ Database Access Library
Originally, SOCI was developed by Maciej Sobczak at CERN as abstraction layer for Oracle, a Simple Oracle Call Interface. Later, several database backends have been developed for SOCI, thus the long name has lost its practicality. Currently, if you like, SOCI may stand for Simple Open (Database) Call Interface or something similar.
ESE is an embedded / ISAM-based database engine, that provides rudimentary table and indexed access.
Extensible-Storage-Engine A Non-SQL Database Engine The Extensible Storage Engine (ESE) is one of those rare codebases having proven to have a more th
SpDB is a data integration tool designed to organize scientific data from different sources under the same namespace according to a global schema and to provide access to them in a unified form (views)
SpDB is a data integration tool designed to organize scientific data from different sources under the same namespace according to a global schema and to provide access to them in a unified form (views). Its main purpose is to provide a unified data access interface for complex scientific computations in order to enable the interaction and integration between different programs and databases.
A hook for Project Zomboid that intercepts files access for savegames and puts them in an SQLite DB instead.
ZomboidDB This project consists of a library and patcher that results in file calls for your savegame(s) being transparently intercepted and redirecte
A lightweight header-only C++11 library for quick and easy SQL querying with QtSql classes.
EasyQtSql EasyQtSql is a lightweight header-only C++11 library for quick and easy SQL querying with QtSql classes. Features: Header only C++11 library
SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper.
SQLiteC++ SQLiteC++ (SQLiteCpp) is a smart and easy to use C++ SQLite3 wrapper. About SQLiteC++: SQLiteC++ offers an encapsulation around the native C
Simple-MySQL-API is a free and easy API to manipulate MySQL with C99 and GCC compiler under GNU/Linux OS.
Simple-MySQL-API is a free and easy API to manipulate MySQL with C99 and GCC compiler under GNU/Linux OS.
Money Manager Ex is an easy to use, money management application built with wxWidgets
Money Manager Ex Money Manager Ex is a free, open-source, cross-platform, easy-to-use personal finance software. It primarily helps organize one's fin
GridDB is a next-generation open source database that makes time series IoT and big data fast,and easy.
Overview GridDB is Database for IoT with both NoSQL interface and SQL Interface. Please refer to GridDB Features Reference for functionality. This rep
Simple constant key/value storage library, for read-heavy systems with infrequent large bulk inserts.
Sparkey is a simple constant key/value storage library. It is mostly suited for read heavy systems with infrequent large bulk inserts. It includes bot
❤️ SQLite ORM light header only library for modern C++
SQLite ORM SQLite ORM light header only library for modern C++ Status Branch Travis Appveyor master dev Advantages No raw string queries Intuitive syn
A type safe SQL template library for C++
sqlpp11 A type safe embedded domain specific language for SQL queries and results in C++ Documentation is found in the wiki So what is this about? SQL
Kreon is a key-value store library optimized for flash-based storage
Kreon is a key-value store library optimized for flash-based storage, where CPU overhead and I/O amplification are more significant bottlenecks compared to I/O randomness.
Velox is a new C++ vectorized database acceleration library aimed to optimizing query engines and data processing systems.
Velox is a C++ database acceleration library which provides reusable, extensible, and high-performance data processing components
The fastest database-library on Android OS.
Android SQLite3 NDK 封装 Demo下载 (操作:按钮新增 按钮查询 点按编辑 长按删除) 写在前面 sqlite3 开源、集成简单(现在的版本只有2个文件 sqlite3.h sqlite3.c) 这个库抽离自 Telegram 的开源代码、作者:DrKLO 我个人感觉 Tele
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values. Authors: Sanjay Ghem
C++11 wrapper for the LMDB embedded B+ tree database library.
lmdb++: a C++11 wrapper for LMDB This is a comprehensive C++ wrapper for the LMDB embedded database library, offering both an error-checked procedural
A friendly and lightweight C++ database library for MySQL, PostgreSQL, SQLite and ODBC.
QTL QTL is a C ++ library for accessing SQL databases and currently supports MySQL, SQLite, PostgreSQL and ODBC. QTL is a lightweight library that con