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

📄 otl3_whatn_1.htm

📁 ISO_C++:C++_OTL开发文档
💻 HTM
📖 第 1 页 / 共 5 页
字号:
        <ul>
          <li><a name="type_punned"></a>The following g++ 4.1.0
compilation warnings have been
fixed in this release:<br>
            <br>
            <span style="font-family: monospace;">../include/otlv4.h:
In member function 'void otl_conn::error(otl_exc&amp;)':</span><br
 style="font-family: monospace;">
            <span style="font-family: monospace;">../include/otlv4.h:9126:
warning: dereferencing type-punned pointer will break</span><br
 style="font-family: monospace;">
            <span style="font-family: monospace;">strict-aliasing rules</span><br
 style="font-family: monospace;">
            <span style="font-family: monospace;">../include/otlv4.h:
In member function 'void otl_cur::error(otl_exc&amp;)':</span><br
 style="font-family: monospace;">
            <span style="font-family: monospace;">../include/otlv4.h:10835:
warning: dereferencing type-punned pointer will break</span><br
 style="font-family: monospace;">
            <span style="font-family: monospace;">strict-aliasing rules</span><br
 style="font-family: monospace;">
            <br>
          </li>
          <li>A set of new <a href="otl4_sybsql_examples.htm">code
examples</a> for Sybase.</li>
        </ul>
        <br>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;"><a name="40138"></a>New (in
OTL 4.0.138):<br>
        <br>
        <ul>
          <li>A missing dependency of #define <a
 href="otl3_compile.htm#OTL_UNICODE_STRING_TYPE">OTL_UNICODE_STRING_TYPE</a>
on #define <a href="otl3_compile.htm#OTL_UNICODE">OTL_UNICODE</a> has
been added to this release.<br>
            <br>
          </li>
          <li><a href="otl3_lob_stream.htm">otl_lob_stream</a> required
the total length of a LOB to be <a href="otl3_lob_stream.htm#set_len">set</a>
before the first chunk of the LOB
gets written to the LOB stream. This release has relaxed the
requirement:
OTL/ODBC/DB2-CLI eliminates the requirement completely, and
OTL/OCI8i/9i/10g can be used with otl_long_string::<a
 href="otl3_long_string.htm#set_last_piece">set_last_piece</a>()
instead. For more detail, see examples <a href="otl4_ex385.htm">385 </a>(Oracle),
            <a href="otl4_ex386.htm">386</a> (Oracle) <a
 href="otl4_ex387.htm">387</a> (DB2),&nbsp; <a href="otl4_ex388.htm">388</a>
(DB2), <a href="otl4_ex389.htm">389</a> (MS SQL), <a
 href="otl4_ex390.htm">390</a> (MS SQL), <a href="otl4_ex391.htm">391</a>
(MySQL), <a href="otl4_ex392.htm">392</a> (MySQL), <a
 href="otl4_ex393.htm">393</a> (PostgreSQL), <a href="otl4_ex394.htm">394</a>
(MAX/DB), <a href="otl4_ex395.htm">395</a> (MAX/DB), </li>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.137):<br>
        <br>
        <ul>
          <li>The following comment was incorrect (turns out people
read comments :-) )<br>
            <br>
            <span style="font-family: monospace;">// in case if it's
ODBC for Windows, include windows.h file<br>
            <br>
            </span>and was changed to<br>
            <br>
            <small><small><small><small><small><small><small><small><small><small><small><small><small><small><span
 style="font-family: monospace;">// in case if it's ODBC for Windows
(!OTL_ODBC_UNIX), and windows.h is </span><span
 style="font-family: monospace;">not included yet (_WINDOWS_ not
defined yet), then include the file</span><span
 style="font-family: monospace;"> explicitly<br>
            </span><br style="font-family: monospace;">
            </small></small></small></small></small></small></small></small></small></small></small></small></small></small></li>
          <li>The following minor warning for Borland C++ 6.0 was fixed:<br>
            <pre wrap="">"[C++ Warning] otlv4.h(19678): W8071 Conversion may cause loss of significant digits"<br><br></pre>
          </li>
          <li>OTL/ODBC/DB2-CLI, otlv4.h, line 13285, an OTL trace macro
call was incorrect:<br>
            <br>
            <span style="font-family: monospace;">&nbsp;&nbsp;
OTL_TRACE_WRITE(n,"operator &gt;&gt;","BIGINT");<br>
            <br>
            </span>and was replaced with<br>
            <br>
            <span style="font-family: monospace;">&nbsp;&nbsp;
OTL_TRACE_READ(n,"operator &gt;&gt;","BIGINT");<br>
            <br>
            </span>The incorrect OTL trace macro call caused a program
crash on AIX with DB2 CLI.<br>
            <br>
          </li>
          <li>OTL introduces two new operators <a
 href="otl3_lob_stream.htm#read_string">&gt;&gt;</a>(string&amp;) and <a
 href="otl3_lob_stream.htm#write_string">&lt;&lt;</a>(string&amp;) to
the <a href="otl3_lob_stream.htm">OTL LOB Stream</a> for reading and
writing std::strings (STL), or ACE_TStrings (ACE). For more detail. see
also examples <a href="otl4_ex379.htm">379</a>, <a
 href="otl4_ex380.htm">380</a>, <a href="otl4_ex381.htm">381</a>, <a
 href="otl4_ex382.htm">382</a>, <a href="otl4_ex383.htm">383</a>, <a
 href="otl4_ex384.htm">384</a>.<br>
            <br>
          </li>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.136), updated:<br>
        <br>
        <ul>
          <li>I got the same question from a few developers about
whether OTL officially supported MS SQL 2005 or not. Now the answer is
Yes. I downloaded MS SQL 2005 XE, which can be freely used, installed
it,
and extended the OTL internal test suite to run against MS SQL 2005.<br>
          </li>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.136):<br>
        <br>
        <ul>
          <li>This release fixes a bug similar to <a
 href="OTL_UNICODE_ERROR">this old bug</a>. The difference between the
new bug and the old bug is that the new bug happens when an output
parameter in a stored procedure is used.<br>
            <br>
          </li>
          <li>New code example has been added for OTL/OCI8i/9i/10g to
show how to use CLOB/BLOBs with PL/SQL stored procedures and the LOB
stream mode. See example <a href="otl4_ex378.htm">378.</a><br>
            <br>
          </li>
          <li>Several type cast related compilation warnings have been
fixed in OCIBindByName() calls.<br>
            <br>
          </li>
          <li>When an OTL stream is being opened with a SELECT
statement that contains a column of an unsupported data type, the
program may crash. For example, the following SELECT crashes the
program (OTL/OCI8i/OCI9i/OCI10g):<br>
            <br>
&nbsp;&nbsp;&nbsp;<span style="font-family: monospace;">&nbsp;&nbsp;&nbsp;&nbsp;
select * from sys.ku$_library_view</span><br>
            <br>
This SELECT actually contains an Oracle Object column, which OTL does
not support. The problem has been fixed in this release. Instead of
crashing the program, OTL will throw the following <a
 href="otl3_exc_list.htm">OTL defined</a> exception:<br>
            <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
            <span style="font-family: monospace;">Unsupported column
data type, code <a href="otl3_exc_list.htm#32028">32028</a><br>
            </span><span style="font-family: monospace;"><br>
            </span></li>
          <li>The following new functions have been added to the <a
 href="otl3_compile.htm#OTL_ORA_DECLARE_COMMON_READ_STREAM_INTERFACE">otl_read_stream_interface</a>,
and to the <a href="otl4_refcur_stream.htm">otl_refcur_stream</a> (the
functions do the same thing as the corresponding functions in the <a
 href="otl3_stream_class.htm">otl_stream</a> class):<br>
            <br>
          </li>
          <ul>
            <li><small><small><small><small><small><span
 style="font-family: monospace;">otl_var_desc*
describe_out_vars(int&amp; desc_len);</span></small></small></small></small></small></li>
            <li><span style="font-family: monospace;">otl_var_desc*
describe_next_out_var(void);</span><br>
              <span style="font-family: monospace;"><br>
              </span></li>
          </ul>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.135):<br>
        <br>
OTL had limits on how many bind variables / SELECT output columns it
could handle. The limits were as
follows:<br>
        <br>
        <ul>
          <li>512 for OTL/ODBC, OTL/DB2 CLI, OTL/OCI7</li>
          <li>1024 for OTL / OCI8/8i/9i/10g<br>
            <br>
          </li>
        </ul>
The OTL limits were supposed to match the actual limits of the
underlying database APIs. As more versions of databases come out, the
limits change.&nbsp; This release eliminates any&nbsp; practical limits
on the maximum number of bind variables / SELECT output columns. The
limits on the underlying database APIs still exist.When the limit on,
say, database type A, is reached, OTL would throw an otl_exception. The
actual error code and error message is database specific, and it's not
defined by OTL.<br>
        <br>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.134):<br>
        <br>
        <ul>
          <li>When <a href="otl3_compile.htm#OTL_ODBC">OTL_ODBC </a>/
            <a href="otl3_compile.htm#OTL_DB2_CLI">OTL_DB2_CLI</a>
and&nbsp; <a href="otl3_compile.htm#OTL_BIGINT">OTL_BIGINT</a> are
defined, OTL doesn't compile with older C++ compilers that don't have
support for template member functions. The error is fixed in this
release.</li>
          <br>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.133):<br>
        <br>
        <ul>
          <li>When a DB2 BLOB table column has a smaller maximum size
in its definition than the actual BLOB value being written to the BLOB
column in the <a href="otl3_stream_class.htm#set_lob_stream_mode">LOB
stream mode</a>, OTL throws an exception with no error message, and a
random error code. The error is fixed in this release.<br>
            <br>
          </li>
          <li>When compiled with GNU C++ 4.1.0, OTL generates the
following compilation warning: <br>
            <br>
&nbsp;&nbsp;&nbsp; <span style="font-family: monospace;"><small><small><small><small><small><small><small><small><small><small><small><small><small><small><small>dereferencing
type-punned pointer will <br>
&nbsp; break strict-aliasing rules</small></small></small></small></small></small></small></small></small></small></small></small></small></small></small></span>
            <p><span style="font-family: monospace;"></span></p>
            <br>
The warning was actually fixed in OTL 4.0.132.<br>
            <br>
          </li>
          <li>When OTL is used with <a href="http://boost.org">boost</a>'s
date_time, VC++ generates
the following error message:&nbsp; error
C2668: 'isspace' : ambiguous call to overloaded function. The error is
fixed in this release.<em><br>
            </em><br>
          </li>
        </ul>
        </td>
      </tr>
      <tr>
        <td style="vertical-align: top;">New (in OTL 4.0.132):<br>
        <br>
        <ul>
          <li>OTL doesn't compile with Visual C++ 7.1 when the
following #define's are enabled:<br>
            <br>
            <span style="font-family: monospace;">#define OTL_ORA8I or
ORA9I ORA10G or ORA10G_R2</span><br>
            <span style="font-family: monospace;">#define OTL_UNICODE<br>
#define OTL_UNICODE_CHAR_TYPE wchar_t<br>
#define OTL_UNICODE_STRING_TYPE std::wstring</span><br>
            <span style="font-family: monospace;">#define
OTL_TRACE_LEVEL my_trace_level </span><br
 style="font-family: monospace;">
            <span style="font-family: monospace;">#define
OTL_TRACE_STREAM wcerr </span><br style="font-family: monospace;">
            <span style="font-family: monospace;">#define
OTL_TRACE_LINE_PREFIX "MY OTL TRACE ==&gt; " <br>
            <br>
            </span>Error is fixed in this release<br>
            <br>
          </li>
          <li>When Unicode is enabled for Oracle 8i/9i/10g, and the <a
 href="otl3_stream_class.htm#set_lob_stream_mode">LOB stream mode</a>
is used, <a href="otl3_lob_stream.htm">otl_lob_stream</a> doesn't
return a CLOB/NCLOB correctly. More specifically, if the length of a
CLOB/NCLOB is at least 2-3 times larger than the buffer size which the
CLOB/NCLOB is being fetched through. The error is due to the fact that
the OCI returns the size of the second chunk of the CLOB/NCLOB to be
fetched that is equal in size to the buffer in bytes instead of Unicode
characters. The error is fixed in
this release.<br>
            <br>
          </li>
          <li><a name="OTL_UNICODE_ERROR"></a>When the following
#define's are enabled:<br>
            <br>
            <span style="font-family: monospace;">#define OTL_ORA8I or
ORA9I ORA10G or ORA10G_R2</span><br>
            <span style="font-family: monospace;">#define OTL_UNICODE<br>
#define OTL_UNICODE_CHAR_TYPE wchar_t<br>
#define OTL_UNICODE_STRING_TYPE std::wstring</span><br>
            <span style="font-family: monospace;"><br>

⌨️ 快捷键说明

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