📄 oracle.html
字号:
<P> </P>
<H3><A
name="Working with Long or Lob(CLob, BLob) data">Working with Long or Lob(CLob,
BLob) data</A> </H3>
<P><STRONG>1.</STRONG>
SQLAPI++ supports four types for working with
Lob(CLob, BLob) data:</P>
<P>
<TABLE border=1 cellPadding=1 cellSpacing=1 style="WIDTH: 100%"
width=100%>
<TR bgColor=navy>
<TD><FONT color=white
style="BACKGROUND-COLOR: #000080">Name</FONT></TD>
<TD><FONT color=white
style="BACKGROUND-COLOR: #000080">C
enum constant</FONT></TD>
</TR>
<TR>
<TD>LongBinary</TD>
<TD>SA_dtLongBinary</TD>
</TR>
<TR>
<TD>LongChar</TD>
<TD>SA_dtLongChar</TD>
</TR>
<TR>
<TD>BLob (Binary Large object)</TD>
<TD>SA_dtBLob</TD>
</TR>
<TR>
<TD>CLob (Character Large object)</TD>
<TD>SA_dtCLob</TD>
</TR></TABLE></P>
<P>The table below shows how SQLAPI++ data
types correspond with servers original data types:</P>
<P>
<TABLE border=1 cellPadding=5 width=100%>
<TR>
<TD>
<P><STRONG>When using OCI8:</STRONG></P></TD>
<TD>
<P><EM>SA_dtLongBinary</EM> <= > LONG RAW<BR
><EM>SA_dtLongChar</EM> <= > LONG<BR><EM>SA_dtBLob</EM> <=
> BLOB, FILE<BR><EM>SA_dtCLob </EM><= > CLOB</P></TD></TR>
<TR>
<TD>
<P><STRONG>When using OCI7:</STRONG></P></TD>
<TD>
<P><EM>SA_dtLongBinary</EM> <= > LONG RAW<BR
><EM>SA_dtLongChar</EM> <= > LONG<BR><EM>SA_dtBLob</EM> = >
LONG RAW<BR><EM>SA_dtCLob </EM>= > LONG</P></TD></TR>
</TABLE></P>
<P>
For more details see <A href="../HowTo/blobs.html">How To - Working with Long or Lob(CLob, BLob) data</A></P>
<P><STRONG>2.</STRONG> Binding Lob(CLob, BLob)
data when working with <STRONG>Oracle</STRONG>
server has some differences from others (see <A
href="../HowTo/bind.html">How To - Binding input parameters</A>).
It's necessary for a name of bind variable to be the same as the
column name it associated with.</P>
<P><FONT face=System>Ex.: Update TEST set <FONT
color=maroon face="">FBLOB = :fblob</FONT>
where FKEY =
'KEY'</FONT> </P>
<P>Therefore, it's impossible to bind Lob(CLob,
BLob) data to <STRONG>Oracle</STRONG>
database by position. </P>
<P>
For more details see <A href="../HowTo/bind.html">How To - Binding input parameters</A>.
</P>
<P> </P>
<H3><A
name="Returning output parameters">Returning output
parameters</A> </H3>
<P>
In <STRONG>Oracle</STRONG>
output parameters are
available immediately after calling
<A
href="../OnLineDoc/Command_Execute.html" >SACommand::Execute</A>.</P>
<P>SQLAPI++ Library automatically creates <A href="../OnLineDoc/Param.html" >SAParam</A>
object to represent function
return value. You can refer to this <A href="../OnLineDoc/Param.html" >SAParam</A>
object using SQLAPI++ predefined
name <STRONG>"RETURN_VALUE"</STRONG>.</P>
<P>For more details see <A
href="../OnLineDoc/Command_Execute.html">SACommand::Execute</A>,
<A href="../OnLineDoc/Param_Usage.html">SAParam
object</A>, <A
href="../HowTo/return_param.html">How To - Returning Output Parameters</A>.</P>
<P> </P>
<H3><A name="Cancelling queries">Cancelling
queries</A> </H3>
<P>Using <A
href="../OnLineDoc/Command_Cancel.html">SACommand::Cancel</A> method
you can cancel the following types of processing on a statement:</P>
<UL type=disc>
<LI>A function running asynchronously on
the statement.<BR>
<LI>A function running on the statement on
another thread. </LI></UL>
<p>SQLAPI++ calls <STRONG>obreak</STRONG> function with <STRONG>Oracle 7</STRONG> (OCI7) to cancel a
query. To get more details see <STRONG>obreak</STRONG> function description in
<STRONG>Oracle</STRONG>
documentation.</p>
<p>SQLAPI++ calls <STRONG>OCIBreak</STRONG> function with <STRONG>Oracle 8</STRONG> (OCI8) to cancel a
query. To get more details see <STRONG>OCIBreak</STRONG> function description in
<STRONG>Oracle</STRONG>
documentation.</p>
<P>For more details see <A
href="../OnLineDoc/Command_Cancel.html" >SACommand::Cancel</A>.</P>
<P> </P>
<H3><A
name="Connection and command options">Connection and command
options</A> </H3>
<P>A server specific option can be related with a command or with a
connection. A connection related option must be specified in a
<A href="../OnLineDoc/Connection.html" >SAConnection</A>
object. A command related option
may be specified in either <A href="../OnLineDoc/Connection.html" >SAConnection</A>
object or <A href="../OnLineDoc/Command_Usage.html" >SACommand</A>
object. </P>
<P>Specific options for <STRONG>Oracle</STRONG>:</P>
<P>
<TABLE border=1 cellPadding=5 width=100%>
<TBODY>
<TR bgColor=#000094>
<TD width=17% >
<P>
<STRONG>
<FONT
color=white face="">Option
name</FONT> </STRONG></P>
</TD>
<TD>
<P>
<STRONG><FONT
color=white face="">Description</FONT> </STRONG></P>
</TD>
</TR>
<TR>
<TD> <STRONG><P align=center>
<STRONG>UseAPI</STRONG></P></STRONG></TD>
<TD>
<P>
Forces SQLAPI++ Library to use
directly OCI7 or OCI8 API.
<BR>
<STRONG>Connection
related.</STRONG><BR>Valid values:
"OCI7", "OCI8" and
"OCIAuto".
<BR>
Default
value: "OCIAuto". In this case SQLAPI++ tries
to connect to Oracle using OCI8 first. If it fails it
tries to connect using OCI7.</P>
</TD></TR>
<TR>
<TD> <STRONG><P align=center>
<STRONG>PreFetchRows</STRONG></P></STRONG></TD>
<TD>
<P>
Forces SQLAPI++ Library to fetch
rows in bulk, rather than
retrieving records one by one.
<BR>
<STRONG>Command
related.</STRONG> Should be specified
before command execution.<BR>Valid
values: String containing number of rows
in the fetch
buffer.
<BR>
Default value: "1".</P>
</TD></TR>
</TBODY></TABLE> </P>
<P>For more details see <A href="../OnLineDoc/Command_setOption.html" >SACommand::setOption</A>,
<A href="../OnLineDoc/Connection_setOption.html" >SAConnection::setOption</A>.</P>
<P> </P>
<H3><A name="Getting native Oracle API">Getting
native Oracle API</A> </H3>
<P>You can call client specific API functions
which are not directly supported by SQLAPI++ Library. <A
href="../OnLineDoc/Connection_NativeAPI.html">SAConnection::NativeAPI</A>
method returns a pointer to the set of native API functions
available for <STRONG>Oracle</STRONG>
. To use the database API directly you have to downcast
this <STRONG>saAPI</STRONG>
pointer to the appropriate type and use its
implementation-specific members. The following table shows what type
cast you have to make and what additional header file you have to
include to work with <STRONG>Oracle</STRONG>
API. Note that using appropriate type casting depends
on an API version (that generally mean that you have to explicitly
check client version before casting, see <A
href="../OnLineDoc/Connection_ClientVersion.html">SAConnection::ClientVersion</A>
method). </P>
<P>
<TABLE border=1 cellPadding=5 width=100%>
<TR bgColor=#000094>
<TD width=30>
<P><STRONG><FONT color=white face="">DBMS client</FONT>
</STRONG></P></TD>
<TD style="WIDTH: 300px" width=300>
<P><STRONG><FONT color=white face="">Type casting</FONT>
</STRONG></P></TD>
<TD>
<P><STRONG><FONT color=white face="">Additional
<BR>include
file</FONT> </STRONG></P></TD></TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -