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

📄 otl3_exc_list.htm

📁 ISO_C++:C++_OTL开发文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
stream, for example:<br>
    <br>
    <span style="text-decoration: underline;"></span>&nbsp;&nbsp; <small><small><small><small><small><small><small>while(s&gt;&gt;f1&gt;&gt;f2){</small></small></small></small></small></small></small><small
 style="font-style: italic;"><small><small><small><small><small><small>
// operator int() gets called here AFTER <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// two opeators &gt;&gt;() get called in the loop condition<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ....<br>
&nbsp;&nbsp;&nbsp; </small></small></small></small></small></small></small><small><small><small><small><small><small><small>}</small></small></small></small></small></small></small><br>
    <br>
&nbsp;versus the typical use of otl_stream::eof():<br>
    <br>
&nbsp;&nbsp;&nbsp; <small><small><small>while(!s.eof()){</small></small></small><small
 style="font-style: italic;"><small><small> // eof() gets called BEFORE
something gets read from the stream<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </small></small></small><small><small><small>s&gt;&gt;f1&gt;&gt;f2;</small></small></small><small
 style="font-style: italic;"><small><small> // operators &gt;&gt; get
called AFTER the eof() status was checked<br>
    </small></small></small><small><small><small>&nbsp;&nbsp;&nbsp;&nbsp;
}</small></small></small><br>
    <br>
  </li>
  <li><b>Action: </b>Change the logic of the program so that operator
int() would be called only after some calls to operators
&gt;&gt;()&nbsp; have already been made, or so that operator int()
would not be called at all. Also, it is a good idea to use
otl_stream::eof() instead of implicit calls to operator int().<br>
  </li>
</ul>
<font size="+1"><b><a name="otl_stream_read_iterator_exc"></a>Code=32020:</b>
<a href="otl4_stream_read_iterator.htm">otl_stream_read_iterator</a>:
otl_stream is not open</font>
<ul>
  <li> <span style="font-weight: bold;">Cause</span><b>: </b>The <a
 href="otl3_stream_class.htm">stream</a> the iterator is <a
 href="otl4_stream_read_iterator.htm#attach">attaching</a> to is not
open .<br>
  </li>
&nbsp;
  <li><b>Action: </b>OTL stream read iterator cannot be attached
to a stream that was not opened yet. Make sure that the program logic
is correct, and it does not try to attact to a closed stream.<br>
  </li>
</ul>
<font size="+1"><b>Code=32021:</b> <a
 href="otl4_stream_read_iterator.htm">otl_stream_read_iterator</a>: <a
 href="otl3_pl_tab.htm">PL/SQL table</a> and '<a
 href="otl4_refcur_stream.htm">refcur</a>' parameters are not supported</font>
<ul>
  <li> <b>Cause: </b>Specified features are not supported.<br>
  </li>
&nbsp;
  <li><b>Action:&nbsp;</b> If you need to use "refcurs" or PL/SQL
tables, use the OTL stream interface. <br>
  </li>
</ul>
<font size="+1"><b>Code=32022:</b> <a
 href="otl4_stream_read_iterator.htm">otl_stream_read_iterator</a>:
otl_stream cannot be described</font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>: </b>otl_stream_read_iterator
(in <a href="otl4_stream_read_iterator.htm#attach">attach</a>() or in <a
 href="otl4_stream_read_iterator.htm#describe">describe</a>()) calls
otl_stream::<a href="otl3_stream_class.htm#describe_out_vars">describe_out_vars</a>()
under the covers. When describe_out_vars() returns a 0 pointer back to
the caller function, it normally means that the underlying stream
cannot desribe its output structure. Typically, this happens in the
case of a stored procedure returning an implcit result set (ODBC,
DB2-CLI), or a stored procedure that returns a referenced cursor
(Oracle).<br>
  </li>
&nbsp;
  <li><b>Action: </b>The stream output structure can be normally
described after the execution of the underlying stored procedure.
Therefore, the OTL stream read iterator should be attached to the
stream after the execution of the stored procedure. Change your code
accordingly.<br>
  </li>
</ul>
<font size="+1"><b>Code=32023:</b> <a
 href="otl4_stream_read_iterator.htm">otl_stream_read_iterator</a>:
position is out of range</font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>: </b>OTL
stream read iterator template class provides
a JDBC-like <span style="font-style: italic;">getter </span>interface,
which identifies output variables by their relative positions:
1,2,3,... This exception gets thrown when the specified "pos" parameter
(in <a href="otl4_stream_read_iterator.htm#get_functions">get</a>()
functions or in <a href="otl4_stream_read_iterator.htm#is_null">is_null(</a>)
function) is out of range.<br>
  </li>
&nbsp;
  <li><b>Action: </b>Make<b> </b>sure that the specified pos is
within the range. The whole set of output variables of the underlying
stream can be describe by calling <a
 href="otl4_stream_read_iterator.htm#describe">otl_stream_read_iterator.htm::describe</a>().<br>
  </li>
</ul>
<font size="+1"><b>Code=32024:</b> <a
 href="otl4_stream_read_iterator.htm">otl_stream_read_iterator</a>:
incompatible types in get()</font>
<ul>
  <li> Cause<b>: </b>The data type of a variable used in the current <a
 href="otl4_stream_read_iterator.htm#get_functions">get</a>()
operation
is not compatible with the declared stream format.</li>
&nbsp;
  <li><b>Action: </b>Make sure the data types are compatible.</li>
</ul>
<br>
<font size="+1"><b><a name="32025"></a>Code=32025:</b> otl_stream::<a
 href="otl3_stream_class.htm#operator_int">operator int</a>() is not
supported in the LOB stream mode</font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp; </b>operator
int() is not supported in the LOB
stream mode.</li>
&nbsp;
  <li><b>Action: </b>An attempt was made to call operator int()
in the <a href="otl3_stream_class.htm#set_lob_stream_mode">LOB stream
mode</a>.<br>
  </li>
</ul>
<br>
<font size="+1"><b><a name="32026"></a>Code=32026:</b> <a
 href="otl4_stream_read_iterator.htm">otl_stream_read_iterator</a>: get(<a
 href="otl3_lob_stream.htm">otl_lob_stream</a>*&amp;) function can only
be used if otl_stream::<a
 href="otl3_stream_class.htm#set_lob_stream_mode">set_lob_stream</a><a
 href="otl3_stream_class.htm#set_lob_stream_mode">_mode</a>(true) had
been called before the iterator was attached to the stream</font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp; </b>otl_stream_read_iterator
can only be used
when the underlying otl_stream is in te LOB stream mode..</li>
&nbsp;
  <li><b>Action: </b>Set the underlying stream to the LOB stream
mode.</li>
</ul>
<font size="+1"><b><a name="32027"></a>Code=32027:</b> <a
 href="otl4_stream_read_iterator.htm">otl_stream_read_iterator</a>: :
variable name is not recognized&nbsp;</font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp;&nbsp;</b>OTL
stream read iterator template class
provides
a JDBC-like <span style="font-style: italic;">getter </span>interface,
which identifies output columns / variables by their names This
exception gets thrown when the specified "var_name" parameter
(in <a href="otl4_stream_read_iterator.htm#get_by_name_functions">get</a>()
functions or in <a href="otl4_stream_read_iterator.htm#is_null_by_name">is_null(</a>)
function) is not recongnized.<br>
  </li>
&nbsp;
  <li><b>Action: </b>Make<b> </b>sure that the specified name
is among the output columns / variables. The whole set of output
variables of the underlying
stream can be described by calling <a
 href="otl4_stream_read_iterator.htm#describe">otl_stream_read_iterator.htm::describe</a>().<br>
  </li>
</ul>
<font size="+1"><b><a name="32028"></a>Code=32028: Unsupported column
data type</b></font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp;&nbsp;</b>OTL
stream finds a column in a SELECT
statement / stored procedure call (ODBC, DB2 CLI) / reference cursor
(Oracle) of an unsupported data type. For example, OTL does not support
Oracle Objects.<br>
  </li>
&nbsp;
  <li><b>Action: </b>Make sure that the data types of the all
columns of your SELECT statement are supported by OTL. otl_exception::<a
 href="otl3_exception_class.htm#var_info">var_info</a> contains info on
which column exactly has an unsopprted data type.</li>
</ul>
<font size="+1"><b><a name="32029"></a><a name="raw1"></a>Code=32029:</b>
RAW value cannot be read with otl_lob_stream, use otl_long_string
instead</font><br>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp;&nbsp;</b><a
 href="otl4_stream_read_iterator.htm">OTL stream read iterator</a>
template class
can't read a <a href="otl3_bind_variables.htm#raw">raw</a> value with <a
 href="otl3_lob_stream.htm">otl_lob_stream</a>.<br>
  </li>
  <li><b>Action: </b><a href="otl3_long_string.htm">otl_long_string</a>
needs to be used instead.</li>
</ul>
<font size="+1"><b><a name="32030"></a>Code=32030: otl_stream is
already open</b></font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp;&nbsp;</b>OTL
stream was already open when otl_stream::open() was called on the same
stream.<br>
  </li>
&nbsp;
  <li><b>Action: </b>Before opening a stream, make sure that it's not
already open by calling otl_stream::good() on the stream:<br>
    <br>
    <span style="font-family: monospace;">&nbsp;&nbsp; if(!my_str.<a
 href="otl3_stream_class.htm#good">good</a>()){<br>
&nbsp;&nbsp;&nbsp;&nbsp; // stream is not open</span><br>
  </li>
</ul>
<font size="+1"><b><a name="32031"></a>Code=32031: otl_connect is
already connected</b></font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp;&nbsp;</b>OTL
connect object was already connected to the database when
otl_connect::rlogon() was called on the same object.<br>
  </li>
&nbsp;
  <li><b>Action: </b>Before connecting an otl_connect object to the
database, make sure that the object is not already connected:<br>
    <br>
    <span style="font-family: monospace;">&nbsp;&nbsp; if(!my_connect.<a
 href="otl3_connect_class.htm#connected"><span
 style="text-decoration: underline;">connected</span></a>){<br>
&nbsp;&nbsp;&nbsp;&nbsp; // connect object is not connected <br>
    </span><br>
  </li>
  <span style="font-family: monospace;"></span>
</ul>
<font size="+1"><b><a name="32032"></a>Code=32032: SELECT otl_stream
buffer size for TimesTen should be in [0..128] range</b></font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp;&nbsp;</b>OTL
stream uses the TimesTen TT_PREFETCH_COUNT under #define <a
 href="otl3_compile.htm#OTL_ODBC_TIMESTEN_WIN">OTL_ODBC_TIMESTEN_WIN</a>,
and <a href="otl3_compile.htm#OTL_ODBC_TIMESTEN_UNIX">OTL_ODBC_TIMESTEN_UNIX</a>,
which has the range of [0..128].<br>
  </li>
&nbsp;
  <li><b>Action: </b>The OTL stream size buffer needs to be changed to
a value in the range of [1..128].<br>
    <br>
  </li>
</ul>
<font size="+1"><b><a name="32033"></a>Code=32033: otl_connect object
needs to be connected to DB before using otl_subscriber</b></font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp;&nbsp;</b>OTL
connect object needs to be connected to the database, before <a
 href="otl4_subscriber.htm">otl_subscriber</a> objects can be used with
the otl_connect object..<br>
  </li>
&nbsp;
  <li><b>Action: </b>Connect
your otl_connect object to the
database, and then try to use your otl_subscriber objects with the
otl_connect object.<br>
    <br>
  </li>
</ul>
<font size="+1"><b><a name="32034"></a>Code=32034: otl_stream buffer
size should be 1 when refcur or plsql table is used</b></font>
<ul>
  <li><span style="font-weight: bold;"> Cause</span><b>:&nbsp;&nbsp;</b>OTL
stream uses a <a href="otl3_bind_variables.htm#refcur">refcur</a> bind
variable (in a combination with&nbsp; <a href="otl4_refcur_stream.htm">otl_refcur_stream</a>),
or <a href="otl3_bind_variables.htm#pl_tab">PL/SQL tables</a>, and the
stream buffer size is larger than 1.<br>
  </li>
&nbsp;
  <li><b>Action: </b>Set the OTL stream buffer size to 1 and try again.<br>
  </li>
</ul>
<center>
<hr width="100%">
<p><a href="otl3_namespaces.htm">Prev</a> <a href="otl3.htm">Contents</a><a
 href="home.htm">Go
Home</a><br>
<br>
</p>
</center>
<p>Copyright &copy; 1996, 2008, Sergei Kuchin, email: <a
 href="mailto:skuchin@aceweb.com">skuchin@aceweb.com</a>,
<a href="mailto:skuchin@gmail.com">skuchin@gmail.com
<script language="JavaScript"><!-- hide from old browsers
 var modDate = new Date(document.lastModified)
 document.write("<i> Last Updated:</i> " + (modDate.getMonth()+1) + "/" + 
                modDate.getDate() + "/" + "0"+(modDate.getYear())%100+".");
 //-->
 </script></a>.
</p>
<p><i>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.</i>
</p>
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-5456201-1");
pageTracker._trackPageview();
</script>
</body>
</html>

⌨️ 快捷键说明

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