📄 sqlserver_oledb.html
字号:
<P>For more details see <A
href="../HowTo/connect.html">How To - Connecting to databases</A>, <A
href="../OnLineDoc/Connection_Usage.html">SAConnection object</A>, <A
href="../OnLineDoc/Connection_Connect.html">SAConnection::Connect</A>.</P>
<P> </P>
<H3><A
name="Transaction isolation levels">Transaction isolation
levels</A> </H3>
<P>SQL-92 defines four isolation levels, all of
which are supported by SQLAPI++:</P>
<UL>
<LI>Read uncommitted (the lowest level where
transactions are isolated just enough to ensure that physically
corrupt data is not read)
<LI>Read committed
<LI>Repeatable read
<LI>Serializable (the highest level, where
transactions are completely isolated from one another)</LI></UL>
<P>SQLAPI++ maps different isolation levels on
<STRONG>SQL Server (OLE DB)</STRONG> in the following way:</P>
<P> <STRONG
>SA_ReadUncommitted</STRONG> =
ISOLATIONLEVEL_READUNCOMMITTED ('Read
Uncommitted')<BR><STRONG> SA_ReadCommitted</STRONG> = ISOLATIONLEVEL_READCOMMITTED
('Read Committed')<BR><STRONG> SA_RepeatableRead</STRONG> =
ISOLATIONLEVEL_REPEATABLEREAD
('Repeatable
Read')<BR><STRONG> SA_Serializable</STRONG> = ISOLATIONLEVEL_SERIALIZABLE
('Serializable')</P>
<P>For more details see <A
href="../OnLineDoc/Connection_setIsolationLevel.html">SAConnection::setIsolationLevel</A>.</P>
<P> </P>
<H3><A
name="Working with Long or Lob(CLob, BLob) data">Working with Long or Lob(CLob,
BLob) data</A> </H3>
<P>
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 <STRONG>SQL Server's (OLE DB)</STRONG>
original data types:</P>
<P><EM>SA_dtLongBinary</EM>
<= > IMAGE<BR><EM>SA_dtLongChar</EM> <= > TEXT<BR><EM
>SA_dtBLob</EM> = > IMAGE<BR><EM>SA_dtCLob </EM>=> TEXT</EM></P>
<P>
For more details see <A href="../HowTo/blobs.html">How To - Working with Long or Lob(CLob, BLob) data</A>
, <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><STRONG>SQL Server</STRONG>
stored procedures can have integer return codes and
output parameters. The return codes and output parameters are sent
in the last packet from the server and are therefore not available
to the application until all result sets from stored procedure (if
any) are completely processed using <A href="../OnLineDoc/Command_FetchNext.html" >SACommand::FetchNext</A>
method.</P>
<P>SQLAPI++ Library automatically creates <A href="../OnLineDoc/Param.html" >SAParam</A>
object to represent procedure
status return code or 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/Command_FetchNext.html">SACommand::FetchNext</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>ICommand::Cancel</STRONG>
function to cancel a query. To get more
details see <STRONG>ICommand::Cancel</STRONG>
function
description in <STRONG>SQL Server OLE DB</STRONG>
documentation.</p>
<P>For more details see <A href="../OnLineDoc/Command_Cancel.html" >SACommand::Cancel</A>, <A
href="SQLServer_OleDb.html#Connection and command options">SQL Server (OLE DB)
connection and command options</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>SQL Server (OLE DB)</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 OLE DB or DB-Library
API.<BR > <STRONG>Connection
related.</STRONG>
<BR>
Valid
values: "OLE
DB" and "DB-Library".
<BR>
Default value: "OLE DB".
SQLAPI++
uses
OLE DB as the default API.</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>
<TR>
<TD> <STRONG><P align=center>
DBPROP_SERVERCURSOR</P></STRONG></TD>
<TD>
<P>
Forces SQL Server to
return result sets using one of
the following methods:</P>
<UL>
<LI>Default result sets, which:<BR>- provide maximal
performance in fetching data;<BR>- support only one active statement at a time
on a connection.
<LI>Server cursors, which:<BR>- support multiple
active statements on a single connection;<BR>- can
decrease performance relative to a default result
set.</LI></UL>
<P>
See
SQLOLEDB documentation to get more
about differences between the default
result sets and server cursors.
<BR>
<STRONG>Command
related.</STRONG> Should be specified
before command execution.<BR>Valid values:
"VARIANT_TRUE" (SQLOLEDB implements the rowset
using a server cursor),
"VARIANT_FALSE" (SQLOLEDB implements the rowset using
a default result
set).
<BR>
Default value is
not set. In this case the rowset is implemented using a
default result set.</P>
</TD></TR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -