OTL 4.0 was designed as a combination of a C++ template framework and OTL-adapters. The framework is a generic implementation of the concept of OTL streams. The OTL-adapters are thin wrappers around the database APIs and are used as class type parameters to be passed into the template framework.
OTL 4.0 covers the functionality of a full featured C++ database access library with just a handful of classes: otl_stream, otl_connect, otl_exception, otl_long_string, and several template PL/SQL (Oracle) table container classes, generated from the template framework and the OTL-adapters.
The OTL code gets expanded into direct database API function calls, so it provides very decent performance (only 10-15% overhead compared with the database APIs themselves) and reliability in multiprocessor environments as well as traditional batch programs. OTL 4.0, being a template library, is highly portable since it is self-sufficient and compact enough.
OTL 4.0 is ANSI C++ compliant (ANSI C++ typecasts, clean templatized code, etc.), tightly integrated with the Standard Template Library (STL) via STL-compliant stream iterators, and natively supports the STL std::string by the otl_stream class. OTL integrates with ACE, and supports ACE_TStrings. A new C++ standard (C++11) was adopted in 2011. OTL uses C++-11 features like move constructors, move assignment operators, nullptr, etc. in order to keep its code clean and modern for compilers that support C++11 features.
OTL 4.0 supports all major and a few minor relational database
types (Oracle, MS SQL Server, DB2, Informix, TimesTen, MAX/DB,
etc.) natively via the corresponding database API. For the rest of
database types (PostgreSQL, MySQL, Sybase, SQLite, MS ACCESS,
Firebird, etc.), OTL has support via ODBC 3.x, or ODBC 2.5 (legacy
In the last several years, transition from 32-bit platforms to
64-bit platforms has occurred: OTL's source code is portable, and
it supports both 32-bit and 64-bit C++ compilers.
Also, OTL supports UTF-8 and UTF-16 string data for Oracle, and
for the rest of the database types, when the underlying database
API / ODBC driver has the corresponding support.
In 2011, C++11
standard was adopted. OTL started using C++11 features as soon as
they became available in major C++ compilers (Visual C++, GNU C++,
CLANG, etc.) in order to keep OTL as a general-purpose library
relevant and modern over time.
Next ContentsGo Home
Copyright © 1996-2018, Sergei Kuchin, email: firstname.lastname@example.org, email@example.com .
Permission to use, copy, modify and redistribute this document for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.