SQL Connectivity Libraries released
Today two SQL Connectivity libraries were released.
- Released first version 0.0.1 of CppDB library - new powerful SQL Connectivity library written in C++.
Released updated version 0.0.4 of DbiXX - libdbi wrapper. It was also deprecated in favor of CppDB.
It would be continued to be updated with bug fixed and probably small features, but the support will be discontinued withing a year or two, depending on the users needs.
Downloads are available in usual place: https://sourceforge.net/projects/cppcms/files/
Documentation can be found at: http://art-blog.no-ip.info/sql
Why CppDB? What is New There?
New SQL Connectivity library was introduced. There were many reasons for this step:
- Support of both prepared and unprepared statements and transparent prepared statements caching.
- Connection Pooling
- Static and Dynamic linking of the modules - very important for deploy.
- Native windows support including MSVC compiler.
- Removal of additional intermediate layer between the C++ code and native SQL client - libdbi.
- Performance.
- Ensure thread safety (which libdbi was lacking on some platforms - windows)
What is new in DbiXX
- Correct overloading for all integer types
- Access to underlying dbi data structures from all classes
- Support of connection string
- Support of getting driver name (for conditional coding)
- Full Doxygen documentation
- Some code cleanup - to make it locale safe
Why not other libraries like SOCI or QtSql
- QtSql is very heavy depends on Qt framework and does not fit well to modern C++ design (as it provides their own classes for everything - QString etc)
- SOCI - the development cycle is very slow, the quality of some primary FOSS RDBMS drivers is very low, and general disagreement about several concepts.
Comments
Perhaps you could compare SOCI, dbixx and eventually libopendbx (which seems also to be a really small wrapper around the native db libraries) regarding there performance in different situations.
Until now I used libopendbx for my projects, but as this project looks as it is dying I think I'll give cppdb a try.
Thanks for you effort!
Stefan
I've did and CppDB outperforms them by 30% - 200%, depending on situation, backend etc...
However it is hard to compare them as nobody uses prepared statements caching and this gives significant performance boost.
Other then that when prepared statements cache is turned off it has similar (generally little bit better) performance in comparison to other libraries.
I didn't published the benchmarks as they behave differently and it is hard to call such comparison fair.
More over SOCI vs CPPDB
CPPDB has:
They are two very useful functions that SOCI not have.
GREAT JOB!!
Add Comment:
You must enable JavaScript in order to post comments.