📄 sqlserver_oledb.html
字号:
</P>
<P><EM>Valid values </EM>
for <FONT face=""
size=2><FONT face="" size=3>DBPROP_SERVERCURSOR
option</FONT></FONT>: "VARIANT_TRUE" (SQLOLEDB
implements the rowset
using a server cursor), "VARIANT_FALSE" (SQLOLEDB implements the rowset using a
default result set). </P>
<P><EM>Valid values </EM>
for other<FONT
face="" size=2><FONT face="" size=3>
options</FONT></FONT>
: "VARIANT_TRUE", "VARIANT_FALSE". See SQLOLEDB
documantation for more
detailes.
<BR>
<BR>
By
default
SQLAPI++ doesn't change
these options and uses the values set by SQLOLEDB. See SQLOLEDB
documentation for details.</P>
</TD></TR>
<TR>
<TD> <STRONG><P align=center><FONT face=""
size=2>DBPROP_COMMANDTIMEOUT</FONT>
</P></STRONG><P align=center>Command related.
Should be specified before command execution.
</P></TD>
<TD>
<P>
Sets Command Time Out.
<BR>
<BR><EM>Valid
values</EM>: String containing number of seconds before a
command times out. A value of "0"
indicates an infinite
time-out.
<BR>
By default
SQLAPI++ doesn't change this option and uses the value
set by
SQLOLEDB. See SQLOLEDB
documentation for details.</P>
</TD></TR>
<TR>
<TD> <STRONG><P align=center><FONT face=""
size=3>Execute_riid</FONT>
</P></STRONG><P align=center>Command related.
Should be specified before command execution.
</P></TD>
<TD>
<P>
Sets the requested interface for
the rowset returned by the command. See SQLOLEDB
documentation (<EM>ICommand::Execute()</EM>
function) for details.
<BR>
<BR><EM>Valid
values</EM> : "IID_NULL"
(no rowset is returned),
"IID_IRowset", "IID_IStream",
"IID_ISequentialStream", "IID_IMultipleResults".
<BR><EM>Default value</EM>
: "IID_IMultipleResults" (to
create multiple results).</P>
</TD></TR>
</table></P>
<P>For more details see <A href="../OnLineDoc/Connection_setOption.html" >SAConnection::setOption</A>,
<A href="../OnLineDoc/Command_setOption.html" >SACommand::setOption</A>,
<A href="../OnLineDoc/Field_setOption.html" >SAField::setOption</A>,
<A href="../OnLineDoc/Param_setOption.html" >SAParam::setOption</A>.
</P>
<P> </P>
<H3><A
name="Getting native SQL Server API">Getting native SQL Server (OLE DB)
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>SQL Server (OLE DB)</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>OLE DB</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 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>
<TR>
<TD>
<P>Cast the result to <STRONG
>class ssOleDbAPI</STRONG>:</P>
<P><FONT face=System>saAPI *pResult = con.NativeAPI();<BR>ssOleDbAPI *p_ssOleDbAPI = (ssOleDbAPI *)pResult;</FONT></P></TD>
<TD><STRONG>
<P><STRONG>#include
<ssOleDbAPI.h></STRONG></P> </STRONG></TD></TR>
</TABLE> </P>
<P>To get more information about DBMS API
functions see this DBMS specific documentation. </P>
<P>For more details see <A
href="../OnLineDoc/Connection_NativeAPI.html">SAConnection::NativeAPI</A>.</P>
<P> </P>
<H3><A
name="Getting native SQL Server connection related handles">Getting native SQL
Server (OLE DB) connection related handles</A> </H3>
<P>You have to use native API handles when you
want to call specific <STRONG>SQL Server OLE DB</STRONG>
API functions which are not directly
supported by the Library. API functions usually need to receive one
or more active handles as a parameter(s). <A
href="../OnLineDoc/Connection_NativeHandles.html">SAConnection::NativeHandles</A> method returns a pointer to
the set of native API <STRONG>connection related</STRONG>
handles. To use API handles directly you have to
downcast <STRONG>saConnectionHandles</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 specific <STRONG>OLE DB</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%">
<TBODY>
<TR bgColor=#000094>
<TD>
<P><STRONG><FONT color=white face="">Type casting</FONT>
</STRONG></P></TD></TR>
<TR>
<TD>
<P><STRONG><FONT color=maroon face="">Cast the result</FONT></STRONG> to <STRONG
>class
ssOleDbConnectionHandles</STRONG>:</P><FONT face=System
><FONT face=System>
<P><STRONG><FONT color=maroon face="">#include <ssOleDbAPI.h></FONT> </STRONG></P>
<P>saConnectionHandles *pResult =
con.NativeHandles</FONT>();<BR>ssOleDbConnectionHandles *p_ssOleDbCH =<BR>
(ssOleDbConnectionHandles *)pResult;</P>
<P><FONT face="Times New Roman"
><STRONG><FONT
color=maroon face="">Available
handles:</FONT></STRONG></FONT> </P>
<UL>
<LI><FONT
face="Times New Roman">IDBInitialize
*pIDBInitialize;</FONT>
<LI><FONT
face="Times New Roman">IDBCreateCommand
*pIDBCreateCommand;</FONT>
<LI><FONT
face="Times New Roman">ITransactionLocal
*pITransactionLocal;</FONT></LI></UL></FONT></TD></TR></TBODY></TABLE></P>
<P>To get more information about DBMS API
functions and handles see this DBMS specific documentation.
</P>
<P>For more details see <A
href="../OnLineDoc/Connection_NativeHandles.html">SAConnection::NativeHandles</A>.</P>
<P> </P>
<H3><A
name="Getting native SQL Server command related handles">Getting native SQL
Server (OLE DB) command related handles</A> </H3>
<P>You have to use native API handles when you
want to call specific <STRONG>SQL Server OLE DB</STRONG>
API functions which are not directly
supported by the Library. API functions usually need to receive one
or more active handles as a parameter(s). <A
href="../OnLineDoc/Command_NativeHandles.html">SACommand::NativeHandles</A> method returns a pointer to the
set of native API <STRONG>command related</STRONG>
handles. To use API handles directly you have to
downcast <STRONG>saCommandHandles</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 specific <STRONG>SQL Server OLE DB</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%">
<TBODY>
<TR bgColor=#000094>
<TD>
<P><STRONG><FONT color=white face="">Type casting</FONT>
</STRONG></P></TD></TR>
<TR>
<TD>
<P> <STRONG> <FONT color=maroon face="">Cast the result</FONT> </STRONG> to
<STRONG>class
ssOleDbCommandHandles</STRONG>:</P>
<FONT face=System>
<P> <STRONG>
<FONT color=maroon face="">#include <ssOleDbAPI.h></FONT></STRONG>
</P><P>saCommandHandles *pResult = cmd.NativeHandles</FONT><FONT face=System>
();<BR>ssOleDbCommandHandles
*p_ssOleDbCH =
<BR>
(ssOleDbCommandHandles *)pResult;</FONT>
</P>
<P> <FONT face="Times New Roman">
<STRONG>
<FONT color=maroon face=""> Available handles:</FONT></STRONG>
</FONT></P>
<UL>
<LI >
<FONT face="Times New Roman">
ICommandText *pICommandText;</FONT>
<LI >
<FONT face="Times New Roman">
</FONT>IMultipleResults
*pIMultipleResults;
<LI >
IRowset
*pIRowset; </LI>
</UL></TD></TR></TBODY></TABLE></P>
<P>To get more information about DBMS API
functions and handles see this DBMS specific documentation.
</P>
<P>For more details see <A
href="../OnLineDoc/Command_NativeHandles.html">SACommand::NativeHandles</A>.</P>
<P> </P>
<H3><A name="Error handling">Error
handling</A></H3>
<P>When an error occurs inside SQLAPI++ Library
it throws an exception of type <A href="../OnLineDoc/Exception.html" >SAException</A>. <A
href="../OnLineDoc/Exception_ErrPos.html">SAException::ErrPos</A>
method gets an error position in SQL statement. In
<STRONG>SQL Server (OLE DB)</STRONG>
<A
href="../OnLineDoc/Exception_ErrPos.html">SAException::ErrPos</A> method
returns the number of line within
SQL statement where error occured.</P>
<P>For more details see <A
href="../HowTo/errors.html">How To - Error handling</A>, <A
href="../OnLineDoc/Exception_Usage.html">SAException object</A>.</P>
<P> </P>
<H3><A
name="Special header files - Compile time">Special header files -
Compile time</A> </H3>
<P> The header file in the <STRONG>include</STRONG> subdirectory of SQLAPI++
distributions:<BR><STRONG>#include
<SQLAPI.h> </STRONG>- main header, should be used whenever
SQLAPI++ is used.<BR><STRONG>#include
<ssOleDbAPI.h>
- </STRONG><STRONG>SQLServer</STRONG> API, should be included if direct
<STRONG>SQL Server OLE DB</STRONG>
calls are required.<BR>
</P>
<P>For more details see <A
href="../OnLineDoc/index.html#Instructions for Compiling and Linking Applications with SQLAPI++">Online Documentation - Instructions for
Compiling and Linking Applications with SQLAPI++</A> </P>
<P> </P>
<h3>Problems and Questions</h3>
<p>If you haven't found 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></TBODY></TABLE></FONT>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -