|(in OTL 3.1.20) OTL stream interface and dynamic data containers for PL/SQL tables (OCIx)||See also examples 68, 69, 70, 71|
| (in OTL 3.1.18): an archive
(ZIP file) of all the examples is
This release (3.1.18) is just a source code cleanup, meaning that pieces of code which had been under construction were eliminated from the header file.
|See also the download instructions.|
| (in OTL 3.1.17 for OCIx as well as
| (in OTL 3.1.16/OCI8):
Generally speaking, if OTL/OCI8 is used in the Oracle 8i environment, OTL_ORA8I can be used always, e.g. in all the examples for OTL/OCI8, #define OTL_ORA8I can be set instead of OTL_ORA8.
|(in OTL 3.1.14/OCIx): OTL compiles with the HP ANSI C++ (aCC) compiler. Also, OTL 3.1.14 is a bug fix (see problem #30 for more detail).||See problem #30 for more detail.|
|(in OTL 3.1.11/ODBC) default datatype mapping of SELECT statement's output columns in otl_stream. This feature allows the OTL stream to avoid numeric conversion for datatypes like INT, SMALLINT, TINYINT, FLOAT, REAL, etc. in MS SQL Server, or Sybase. In other words, the binary numeric datatypes get carried over from the database to C++ variables without any conversion.||See the source code.|
|(in OTL 3.1.9/OCI8) functions otl_connect::server_attach(), server_detach(), session_begin(), session_end(). These functions implement separate operations of attaching/detaching to/from Oracle and beginning/ending a session. For more detail, see Oracle's regular manuals.||See also example 60.|
|(in OTL 3.1.6/OCI8) otl_connect::rlogon() function, which allows the OTL/OCI8 to be used in the Pro*C/C++ environment, under the assumption that the primary database connection is made in Pro*C/C++.||See also example 59.|
|(in OTL 3.1.5/OCI7) otl_connect::rlogon() function, which allows the OTL/OCI7 to be used in the Pro*C/C++ legacy environment, under the assumption that the primary database connection is made in Pro*C/C++.||See also example 58.|
|(in OTL 3.1.4) otl_lob_stream class, which is used for reading/writing unlimited [in size] Oracle 8 CLOBs/BLOBs in stream mode.||See also examples 56, 57.|
|(in OTL 3.1.3) otl_stream::set_column_type() function, which allows to override the default datatype mapping in SELECT otl_stream's.||See also examples 53, 54, 55|
|(in OTL 3.1.0) OTL stream interface and template data containers for PL/SQL tables (OCIx)||See also examples 49, 50, 51, 52|
|New auto_commit parameter in the otl_connect constructor and the rlogon() function||See also examples 46, 47, 48|
|New otl_stream::get_rpc() function; direct_exec() may returm a long int value||See also examples 43, 44, 45|
|Streamlined OTL namespaces||See also example 42|
|Date & time and a new OTL otl_datetime container||See also examples 38, 39, 40|
|OTL 3.1 compliance with the ODBC 3.0 specification||OTL 3.1 will not work with older ODBC 2.x drivers. For more detail, see information on the actual driver.|
|New otl_nocommit_stream class||See also examples 35, 36, 37|
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.