# Oracle, Odbc and DB2-CLI Template Library, Version 3.2

# What's New

Feature | Comment
New (in OTL 3.1.20) OTL stream interface and dynamic data containers for PL/SQL tables (OCIx) | See also examples 68, 69, 70, 71
New (in OTL 3.1.18): an archive (ZIP file) of all the examples is available for download. 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.
New (in OTL 3.1.17 for OCIx as well as ODBC).

1. otl_stream::clean() accepts a parameter: clean_up_error_flag. The parameter, if set to 1, forces the otl_stream to clean up its internal error flag, after an otl_exception was thrown.
2. OTL 3.1.17 compiles with xlC, AIX. Also, a compilation problem (#32) was reported for Sun C++ 4.2 and OTL 3.1.16. It is fixed in OTL 3.1.17.

1. For more info on the new parameter of otl_stream::clean(), see examples 65, 66, 67.
2. For more info on the compilation problem for Sun C++ 4.2, see problem #32.

New (in OTL 3.1.16/OCI8):

1. New otl_connect::session_reopen() function.It allows to reopen the session [with the same username/password] faster (5-10%), if it was previously opened by session_begin() and then closed by session_end().
2. New #define OTL_ORA8I to better accommodate small differences between OCI8.0.x and OCI8.1.x (Oracle 8i): describe_select() and reference cursor select streams, if used, will require the use of the OTL_ORA8I macro definition for Oracle 8i and OTL_ORA8 for Oracle 8.

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.

1. See example 61 for more detail on session_reopen().

2. See "How to compile OTL" and examples 62, 63, 64.

This new feature fixes problem #1 and streamlines fixes for problems #23, 25

New (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.
New (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.
New (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.
New (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.
New (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.
New (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.
New (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
New (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

Continued on page 3

Go Home

Copyright © 1996, 2007, Sergei Kuchin, email: skuchin@ispwest.com, skuchin@gmail.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.