mirror of
https://github.com/SOCI/soci.git
synced 2026-05-07 04:10:02 -05:00
5e9f2000013874a10ffbf52a7d45e45874db5400
We need to read the entire contents of the CLOB in Oracle backend and not just the number of bytes corresponding to its length in characters as returned by OCILobGetLength() because this may (and will) be strictly less than its full size in bytes for any encoding using multiple bytes per character, such as the de facto standard UTF-8. Also make reading CLOBs more efficient by doing what Oracle documentation suggests and using the LOB chunk size for reading. Finally, add a unit test checking that using non-ASCII strings in UTF-8 (which had to be enabled for the CI) with CLOBs does work. This commit is best viewed ignoring whitespace-only changes.
SOCI - The C++ Database Access Library
Build Status
| Branches | GitHub Actions | AppVeyor-CI | Documentation | Coverity Scan |
|---|---|---|---|---|
| master | ||||
| release/4.0 |
History
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.
"CERN is also a user of the SOCI library, which serves as a database access layer in some of the control system components."
-- Maciej Sobczak at Inspirel
License
SOCI library is distributed under the terms of the Boost Software License.
Requirements
Core:
- Compile with C++14 support (please use 4.0 series for C++98 support) or MSVS 2015 or later.
- Optionally: Boost C++ Libraries (header-only and Boost.DateTime).
Backend specific client libraries for:
- DB2
- Firebird
- MySQL
- ODBC with specific database driver
- Oracle
- PostgreSQL
- SQLite 3
See documentation at soci.sourceforge.net for details
BSL © Maciej Sobczak and contributors.
Description
Languages
C++
90.1%
Ada
3.4%
CMake
3.3%
Shell
1.9%
HTML
0.9%
Other
0.3%