📄 field_readlongorlob.html
字号:
<html><head><meta name="KEYWORDS" content=" library, C++, Oracle, SQLServer, DB2, Sybase, Informix, InterBase, SQLBase, ODBC,
SQL, server, client, database, programming, development, software,
Win32, Windows, Linux, Unix, Solaris,
Microsoft, Borland, Centura, Gupta, IBM"><meta name="DESCRIPTION" content=
"SQLAPI++ is C++ library for accessing SQL databases (Oracle, SQLServer, Sybase, DB2, InterBase, SQLBase, Informix, ODBC).
It uses native APIs, provides low-level access to database-specific features."><title>SQLAPI++ Library - Online Documentation - SAField::ReadLongOrLob</title></head><body bgcolor="#ffffff" BACKGROUND="../images/bg.gif" text="#000000"><!--GlbHdr--> <table WIDTH="600" height="40" frame="hsides" BORDER="2" BORDERCOLOR="#004fcd" align="right" cellpadding="0" cellspacing="2" id="TABLE1">
<tr><!--class="GlbDefault"-->
<td width="70" bgcolor="#000094" bordercolor="black" align="middle"><A href="/index.html" style="TEXT-DECORATION: none">
<font color="white" size="3" face="sans-serif">
<b>Home</b></font></A></td></TD>
<td width="70" bgcolor="#000094" bordercolor="black" align="middle"><A href="/HowTo/index.html" style="TEXT-DECORATION: none"> <font color="white" size="3" face="sans-serif">
<b>How To</b></font></A></td><!--class="GlbActive"-->
<td width="70" bgcolor="#00bb00" bordercolor="black" align="middle"><A href="/OnLineDoc/index.html" style="TEXT-DECORATION: none"> <font color="white" size="3" face="sans-serif">
<b>Online Documentation</b></font></A></td><!--class="GlbDefault"-->
<td width="70" bgcolor="#000094" bordercolor="black" align="middle"><A href="/Support/index.html" style="TEXT-DECORATION: none"> <font color="white" size="3" face="sans-serif">
<b>Support</b></font></A></td>
<td width=70 bgcolor=#000094 bordercolor=black align=middle><A href="/Download/index.html" style="TEXT-DECORATION: none" >
<font color=white size=3 face=sans-serif>
<b>Download</b></font></A></td>
<td width="70" bgcolor="#000094" bordercolor="black" align="middle"><A href="/Order/index.html" style="TEXT-DECORATION: none"> <font color="white" size="3" face="sans-serif">
<b>Order</b></font></A></td> </tr>
</table>
<p> </p>
<p> </p>
<table width="100%">
<tr>
<td valign="top" width="165"><!--LeftMenu-->
<table frame="void" CELLSPACING="5" width="165">
<tr><td><p> </p></td>
</tr>
<tr>
<td><img align="middle" src="../images/green.gif" WIDTH="12" HEIGHT="12"><A href="Command.html" style="TEXT-DECORATION: none">
<font color="white" size="2" face="sans-serif">
SACommand</A> </FONT> </td>
</tr>
<tr>
<td><img align="middle" src="../images/green.gif" WIDTH="12" HEIGHT="12"><A href="Connection.html" style="TEXT-DECORATION: none">
<font color="white" size="2" face="sans-serif">
SAConnection</A> </FONT> </td>
</tr>
<tr>
<td><img align="middle" src="../images/green.gif" WIDTH="12" HEIGHT="12"> <A href="Exception.html" style="TEXT-DECORATION: none">
<font color="white" size="2" face="sans-serif">
SAException</font></A> </td>
</tr>
<tr>
<td><img align="middle" src="../images/red.gif" WIDTH="12" HEIGHT="12"> <A href="Field.html" style="TEXT-DECORATION: none">
<font color="white" size="2" face="sans-serif">
SAField</A>
</FONT> </td>
</tr>
<tr>
<td><img align="middle" src="../images/green.gif" WIDTH="12" HEIGHT="12"><A href="Param.html" style="TEXT-DECORATION: none">
<font color="white" size="2" face="sans-serif">
SAParam</A> </FONT> </td>
</tr>
<tr><td><hr></td></tr>
<tr>
<td><img align=middle src="../images/green.gif" WIDTH="12" HEIGHT="12">
<A href="String.html" style ="TEXT-DECORATION: none" >
<font color=white size=2 face=sans-serif>
SAString</A> </FONT> </td>
</tr>
<tr>
<td><img align=middle src="../images/green.gif" WIDTH="12" HEIGHT="12">
<A href="DateTime.html" style ="TEXT-DECORATION: none" >
<font color=white size=2 face=sans-serif>
SADateTime</A> </FONT> </td>
</tr>
</table>
</td><!--empty column-->
<td width="20">
<p> </p>
</td><!--Content-->
<td valign="top" align="left">
<table width="100%" cellspacing="2" cellpadding="2">
<tr>
<td align="left"> <A href="Field_Usage.html" style="TEXT-DECORATION: none"><h3>Usage</h3></A>
</td>
<td align="left"> <A href="Field.html" style="TEXT-DECORATION: none"><h3>Class Members</h3></A>
</td>
<td align="left"> <A href="Field_Examples.html" style="TEXT-DECORATION: none"><h3>Examples</h3></A>
</td>
</tr>
<tr>
<td colspan="3"><h1>SAField::ReadLongOrLob</h1></td>
</tr>
</table>
<p><font face="Arial"><STRONG>void
ReadLongOrLob( saLongOrLobReader_t</STRONG> fnReader , <STRONG>unsigned
int</STRONG>
nReaderWantedPieceSize , <STRONG>void *</STRONG>pAddlData<b> );<BR>throw (SAException);</b></font></p>
<p>
Starts reading of Long
or BLob(CLob) value using user defined
callback.
</p>
<h3>Parameters</h3>
<P><EM>fnReader</EM>. The name of user function
used for Long or BLob(CLob) data reading. The function must have
syntax declared by <STRONG><A
href="Enums.html#saLongOrLobReader_t">saLongOrLobReader_t
typedef</A> </STRONG>.</P>
<P><EM>nReaderWantedPieceSize</EM>. Size of piece of data user want
to get to callback function.</P>
<P><EM>pAddData</EM>. Additional data, passed to
callback function. </P>
<h3>Remarks</h3>
<P>When you call <A
href="Command_FetchNext.html">SACommand::FetchNext</A>
method (after a
command execution) all fields are updated by their values, including Long
and BLob(CLob) fields. If you want to control piecewise reading of
Long or BLob(CLob) data you should do the following:</P>
<OL>
<LI>After a command execution set
<STRONG>SA_LongOrLobReaderManual</STRONG>
reading mode (see <A href="ValueRead_setLongOrLobReaderMode.html" >setLongOrLobReaderMode</A>)
for Long or
BLob(CLob) fields you want to process by user defined function(s).
After that each <A
href="Command_FetchNext.html">SACommand::FetchNext</A> call will skip
reading Long and BLob(CLob)
fields that you set to be read manually.
<LI>After calling <A
href="Command_FetchNext.html">SACommand::FetchNext</A> method
use <STRONG>ReadLongOrLob</STRONG> method for each field
defined to be read manually.</LI></OL>
<P><STRONG>ReadLongOrLob</STRONG> method will repeatedly call user defined
function:</P>
<P><STRONG>void <function Name>(SAPieceType_t ePieceType,
<BR>
void *pBuf,
<BR>
unsigned int nLen,
<BR>
unsigned int nBlobSize,
<BR>
void *pAddlData);</STRONG></P>
<P><STRONG></STRONG>User defined function has the following
parameters:</P>
<P><EM>ePieceType</EM>. Parameter passed to the
function from SQLAPI++ Library mechanisms. It defines which piece of
data value was read. Can be one of the next
<STRONG>SAPieceType_t</STRONG> enum values:</P>
<UL>
<LI><STRONG>SA_FirstPiece</STRONG> The first (but
not the last) piece of
data was read.
<LI><STRONG>SA_NextPiece</STRONG> The next (not the
first and not the last) piece of data was read.
<LI><STRONG>SA_LastPiece</STRONG> The last piece of
data was read.
<LI><STRONG>SA_OnePiece</STRONG> All field
data was read as one block.</LI></UL>
<P><EM>pBuf</EM>. Pointer to the buffer that
contains the data block read from database.</P>
<P><EM>nLen</EM>. The actual size of data in buffer
<EM>pBuf</EM>.</P>
<P><EM>nBlobSize</EM>. A size of whole Long or
BLob(CLob) field (if DBMS server allows to know it before whole field was read;
otherwise 0).</P>
<P><EM>pAddData</EM>. An additional data user want
to pass to the function.</P>
<P>To get more information about reading Long and BLob(CLob) data
see <A href="../Examples/step6.cpp">Query examples - Step 6</A>.
</P>
<h3>Server specific notes</h3>
<p>No specific information.</p>
<h3> See also</h3>
<P><A href="Field.html">setLongOrLobReaderMode</A></P>
<P><A href="Command.html">SACommand</A>, <A
href="Enums.html">saLongOrLobReader_t</A>, <A
href="Enums.html">SAPieceType_t</A>
</P>
<P><A href="../HowTo/errors.html">Error handling</A>, <A
href="../HowTo/query_exampl.html">Query examples</A></P>
<h3>Problems and Questions</h3>
<p> If
you don't find the answer to you questions or
have some problems on using the Library, please, send e-mail to <A href="mailto:howto@sqlapi.com">howto@sqlapi.com</A>.
</p>
</td>
<tr></tr>
</table>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -