⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 otl3_whatn.htm

📁 ISO_C++:C++_OTL开发文档
💻 HTM
📖 第 1 页 / 共 5 页
字号:
keep track of the latest developments. <br>
            <br>
          </li>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.165):<br>
        <br>
        <ul>
          <li>A bug was reported that OTL/OCI crashes (memory access
violation) the program when a <a href="otl3_bind_variables.htm#refcur">refcur</a>
bind variable is used, and the otl_stream buffer size is greater than
1. The stream buffer size actually has to be set to 1 in this case. In
order to diagnose cases like this one, OTL introduces the following new
            <a href="otl3_exception_class.htm">otl_exception</a>: code=<a
 href="otl3_exc_list.htm#32034">32034</a>, otl_stream buffer size
should be 1 when refcur or plsql table<a href="otl3_exc_list.htm#32034">
            </a>is used. OTL should throw the new exception instead of
memory access violation.<br>
            <br>
          </li>
          <li>A new default for <span style="color: rgb(0, 0, 0);">#define
            <a href="otl3_compile.htm#OTL_UNCAUGHT_EXCEPTION_ON">OTL_UNCAUGHT_EXCEPTION_ON</a>
            </span>was introduced in <a href="#162_UNCAUGHT">OTL
4.0.162</a>. The #define was supposed to wortk when #define OTL_STL is
defined. This release extends #define OTL_UNCAUGHT_EXCEPTION_ON to work
without requiring OTL_STL to be defined first, and
OTL_UNCAUGHT_EXCEPTION_ON is on by default. If anybody has compilation
issues with this new arrangement, let me know, and we'd work something
out.<br>
            <br>
          </li>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.164):<br>
        <br>
        <ul>
          <li>A bug was reported that when #define OTL_ORA10G_R2 is
used, and a PL/SQL table of NUMBER(14,4) from&nbsp; a PL/SQL package
gets bound with a :var&lt;double,out[XX]&gt; variable, an otl_exception
gets thrown that has the following Oracle error message:<br>
            <br>
            <span style="font-family: monospace;">PLS-00418: array bind
type must match PL/SQL table row type<br>
            <br>
            </span>The bug is fixed in this release. OCI10/11 has flaky
support for PL/SQL tables of BINARY_FLOAT / BINARY_DOUBLE, which makes
it impossible to implement any reliable scheme for supporting PL/SQL
tables of NUMBER and PL/SQL table of BINARY_FLOAT /BINARY_DOUBLE
without introducing special data types (for example, "binary_float" in
addition to "float", which is already binary) for PL/SQL tables
BINARY_FLOAT / BINARY_DOUBLE. Until Oracle straightens out the support
for PL/SQL tables of BINARY_FLOAT / BINARY_DOUBLE, and the appropriate
changes are made to OTL, it's recommended to use PL/SQL tables of
NUMBERs instead. <br>
            <span style="font-family: monospace;"><br>
            </span></li>
          <li>A bug was reported that when #define UNICODE / _UNICODE,
OTL_UNICODE, and OTL_ODBC are defined, and when a table has an accented
column name in it (for example,: assign&eacute;),&nbsp; function
SQLDescribeCol() returns bad information about the column, which
results in the program's crash. The second bug related to accented
column names was reported when otl_connect::direct_exec() function is
used with accented table columns. The bugs were due to the fact that a
type cast to a signed char* was used instead of unsigned char*. The
bugs are fixed in this release.<br>
            <br>
OTL doesn't have full support for UTF16 based SQL statement text.
However, SQL statements based on one-byte character sets&nbsp; should
be fully supported.<br>
            <br>
            <span style="font-family: monospace;"></span></li>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.163):<br>
        <br>
        <ul>
          <li>This release compiles clean with Visual C++ 9 (Visual
Studio 2008, which came out recently).<br>
            <br>
          </li>
          <li>An OTL defined <a href="otl3_exc_list.htm#CLOB_32008">exception</a>
has been changed in this release to the following in order to carry
more useful information: <small><font size="+1"><small><br>
            <br>
            <span style="font-family: monospace;">Writing
CLOB/BLOB in stream mode: actual size is greater than specified, trying
to store X1 bytes / Unicode characters at offset X2. New length: X3
would be bigger than length of lob: X4.</span><br>
            <br>
The text of the exception (of the <a href="otl3_exception_class.htm">otl_exception</a>
class) carries more information than before to simplify troubleshooting
of incorrect custom C++ code. This change was originally submitted as a
patch and merged into this release with some modifications.<br>
            <br>
            </small></font></small></li>
          <li><small><font size="+1"><small>The following minor error
was reported in OTL code example <a href="otl4_ex383.htm">383</a>: </small></font></small><br>
            <pre wrap="">The "drop table test_tab" statement silently fails when the table does<br>not exist (as expected) but since db.commit() isn't called immediately<br>afterward the transaction is still open and left in an error status.  <br><br>Any statement issued after that will fail with the following error:<br>"ERROR:  current transaction is aborted, commands ignored until end of<br>transaction block"<br><br></pre>
            <p>Similar errors were present in some of the <a
 href="otl4_postgresql_examples.htm">PostgreSQL examples</a>. All the
errors have been fixed in this release.<br>
            </p>
            <small><font size="+1"><small><br>
            </small></font></small></li>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.162):<br>
        <br>
        <ul>
          <li>This release introduces the following code examples for
Informix CLI: <a href="otl4_inf_examples.htm">examples 625-658</a>.
OTL has supported Informix via Informix CLI for a few years. Informix
CLI in Windows is indistinguishable from ODBC, so in Windows #define <a
 href="otl3_compile.htm#OTL_ODBC">OTL_ODBC</a> can used with Informix
CLI. In Unix, #define <a href="otl3_compile.htm#OTL_INFORMIX_CLI">OTL_INFORMIX_CLI</a>
can be used. <br>
            <br>
          </li>
          <li>A bug was reported that when OTL is used with TimesTen
7.0.2 or higher, it is impossible to set the TT Prefetch size to 0,
which enables the default TT Prefetch sizes (see TT manuals for more
detail). The bug is fixed is this release. See also the <a
 href="otl3_stream_class.htm#STREAM_BUFFER_SIZE_0">stream buffer size</a>
description.<br>
            <br>
          </li>
          <li>A compilation bug was reported that when OTL is being
compiled with g++ with -ansi commannd line option, and&nbsp; #define <a
 href="otl3_compile.htm#OTL_ACE">OTL_ACE</a>. A <a
 href="https://sourceforge.net/forum/forum.php?thread_id=1930896&amp;forum_id=208859">patch</a>
was posted in the OTL discussion forum. The patch has been merged with
this release.<br>
            <br>
          </li>
          <li>The following formatting problem was reported when OTL
tracing is enabled:<br>
            <br>
            <pre><span style="color: rgb(0, 0, 0);">MY OTL TRACE ==&gt; otl_connect(this=0042A1D8)::rlogon(connect_str="/******@mssql", auto_commit=0);<br><br></span></pre>
            <p><span style="color: rgb(0, 0, 0);">The user id is
missing from the trace. The problem is fixed in this release.<br>
            <br>
            </span></p>
          </li>
          <li><span style="color: rgb(0, 0, 0);"><a name="162_UNCAUGHT"></a>In
order to address
user complaints about aborting / terminating programs in the case of a
cascade of OTL exceptions, the following #define has been made the
default in this release:
#define <a href="otl3_compile.htm#OTL_UNCAUGHT_EXCEPTION_ON">OTL_UNCAUGHT_EXCEPTION_ON</a>.
From the beginning, OTL, according to some C++ gurus who would <a
 href="otl3_whatn_1.htm#HIT_IN_HEAD">hit</a> me in the head, should not
have had
"throwing destructors". See more detail on the history of the question <a
 href="http://kolpackov.net/projects/c++/eh/dtor-1.xhtml">here</a>.<br>
            <br>
By completely eliminating throwing
desctructors, OTL would have broken a lot of existing custom code (the
code would have to be rewritten), so the decision had been made to
introduce
#define OTL_UNCAUGHT_EXCEPTION_ON. <br>
            <br>
Only really old C++ compilers like Visual C++ 6.0 don't support the
required C++ function (uncaught_exception()). If anybody experience any
problems with this new
default setting, let me know, we would work something out.<br>
            <br>
Those who do not want OTL destructors to "throw" can use </span>#define
            <a href="otl3_compile.htm#OTL_DESTRUCTORS_DO_NOT_THROW">OTL_DESTRUCTORS_DO_NOT_THROW</a>,
but they would have to call the close() function all otl_streams
explicitly, before each stream goes out scope.<br>
          </li>
        </ul>
        <br>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.161):<br>
        <br>
        <ul>
          <li>A bug was reported that when #define <a
 href="otl3_compile.htm#OTL_ORA10G">OTL_ORA10G</a> (or <a
 href="otl3_compile.htm#OTL_ORA10G_R2">OTL_ORA10G_R2</a>, or <a
 href="otl3_compile.htm#OTL_ORA11G">OTL_ORA11G</a>) is used against an
Oracle 9i database backend, the OCI10 native SQLT_BDOUBLE / SQLT_BFLOAT
bindings don't work. The bug is fixed in this release, and the fix can
be enabled with #define <a
 href="otl3_compile.htm#OTL_ORA_LEGACY_NUMERIC_TYPES">OTL_ORA_LEGACY_NUMERIC_TYPES</a>.
            <br>
            <br>
          </li>
          <li>A bug was reported that when #defines OTL_ORA8 / 8I/ 9I /
10G / 10G_R2 / 11G are used with <a href="otl3_lob_stream.htm">otl_lob_stream</a>,
and when the value of a CLOB/BLOB in a table goes from, say a size &gt;
0 to the size of 0, the actual value doesn't get set to the size of
0. The bug fixed in this release.<br>
            <br>
          </li>
          <li>A bug was reported that when #define OTL_ORA8 / 8I / 9I /
10G / 10G_R2 / 11G is defined along with #define <a
 href="otl3_compile.htm#OTL_ODBC_TIMESTEN_UNIX">OTL_ODBC_TIMESTEN_UNIX</a>
/ <a href="otl3_compile.htm#OTL_ODBC_TIMESTEN_WINDOWS">OTL_ODBC_TIMESTEN_WINDOWS</a>,
and the resulting executable is linked with both the OCI and the
TimesTen object libraries, the program's performance (the Oracle side
in particular) degrades tenfold. The bug is fixed in this release.<br>
            <br>
          </li>
          <li>A bug was reported that when an otl_exception gets thrown
and an error is caused by an <a href="otl3_bind_variables.htm#nchar">nchar</a>
or an <a href="otl3_bind_variables.htm#nclob">nclob</a> bind variable,
the <a href="otl3_exception_class.htm#var_info">var_info</a> member of
the otl_exception isn't populated correctly. In particular, the data
type is blank isntead of NCHAR, or NLOB. The bug is fixed in this
release.<br>
            <br>
          </li>
          <li>This release introduces the following new #define <a
 href="otl3_compile.htm#OTL_ODBC_ENTERPRISEDB">OTL_ODBC_ENTERPRISEDB</a>.
The #define can be used with <a href="http://www.enterprisedb.com">Enterprise
DB</a>, a commecial, Oracle compatible offshoot of <a
 href="http://postgesql.org">PostgreSQL</a>. Also, see <a
 href="otl4_edb_examples.htm">examples</a> 586-624 for more detail.<br>
          </li>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.160):<br>
        <br>
        <ul>
          <li>Oracle 11g Release 1 came out recently. OTL introduces
the following new #define to start the OTL/OCI11g series: #define <a
 href="otl3_compile.htm#OTL_ORA11G">OTL_ORA11G</a>.<br>
            <br>
          </li>
          <li>When <a href="otl3_compile.htm#OTL_ODBC">OTL_ODBC</a>, <a
 href="otl3_compile.htm#OTL_BIGINT">OTL_BIGINT</a>, <a
 href="otl3_compile.htm#OTL_STR_TO_BIGINT">OTL_STR_TO_BIGINT</a>, and<span
 style="font-family: monospace;"> </span><a
 href="otl3_compile.htm#OTL_BIGINT_TO_STR">OTL_BIGINT_TO_STR</a> are
defined, OTL does not compile with VC++ 2005, and xlC (C++ in AIX). The
bug is fixed in this
release.<br>
            <br>
          </li>
          <li>When <a
 href="otl3_compile.htm#OTL_DEFAULT_STRING_NULL_TO_VAL">OTL_DEFAULT_STRING_NULL_TO_VAL</a>,
            <a href="otl3_compile.htm#OTL_UNICODE">OTL_UNICODE</a> are
defined together, and <a href="otl4_refcur_stream.htm">otl_refcur_stream</a>
is used, the default string value that the OTL_DEFAULT_STRING_NULL_VAL
defines doesn't get returned correctly in the case if the actual value
to be returned is NULL. The bug is fixed in this release.<br>
            <br>
          </li>
          <li><a href="otl4_stream_read_iterator.htm">otl_stream_read_iterator</a>::get(const
int pos, unsigned char* s) was reported to have a compilation error on
an unspecified C++ compiler, on an unspecified platform. The proposed
code change was merged into this release. .<br>
            <br>
          </li>
        </ul>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -