Sophie

Sophie

distrib > Fedora > 14 > x86_64 > media > updates > by-pkgid > 71d40963b505df4524269198e237b3e3 > files > 974

virtuoso-opensource-doc-6.1.4-2.fc14.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
 <head profile="http://internetalchemy.org/2003/02/profile">
  <link rel="foaf" type="application/rdf+xml" title="FOAF" href="http://www.openlinksw.com/dataspace/uda/about.rdf" />
  <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
  <meta name="dc.title" content="7. Data Access Interfaces" />
  <meta name="dc.subject" content="7. Data Access Interfaces" />
  <meta name="dc.creator" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="dc.copyright" content="OpenLink Software, 1999 - 2009" />
  <link rel="top" href="index.html" title="OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="search" href="/doc/adv_search.vspx" title="Search OpenLink Virtuoso Universal Server: Documentation" />
  <link rel="parent" href="accessinterfaces.html" title="Chapter Contents" />
  <link rel="prev" href="VirtuosoDriverJDBC.html" title="Virtuoso Driver for JDBC" />
  <link rel="next" href="inprocess.html" title="Virtuoso In-Process Client" />
  <link rel="shortcut icon" href="../images/misc/favicon.ico" type="image/x-icon" />
  <link rel="stylesheet" type="text/css" href="doc.css" />
  <link rel="stylesheet" type="text/css" href="/doc/translation.css" />
  <title>7. Data Access Interfaces</title>
  <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" />
  <meta name="author" content="OpenLink Software Documentation Team ;&#10;" />
  <meta name="copyright" content="OpenLink Software, 1999 - 2009" />
  <meta name="keywords" content="" />
  <meta name="GENERATOR" content="OpenLink XSLT Team" />
 </head>
 <body>
  <div id="header">
    <a name="virtoledb" />
    <img src="../images/misc/logo.jpg" alt="" />
    <h1>7. Data Access Interfaces</h1>
  </div>
  <div id="navbartop">
   <div>
      <a class="link" href="accessinterfaces.html">Chapter Contents</a> | <a class="link" href="VirtuosoDriverJDBC.html" title="Virtuoso Driver for JDBC">Prev</a> | <a class="link" href="inprocess.html" title="Virtuoso In-Process Client">Next</a>
   </div>
  </div>
  <div id="currenttoc">
   <form method="post" action="/doc/adv_search.vspx">
    <div class="search">Keyword Search: <br />
        <input type="text" name="q" /> <input type="submit" name="go" value="Go" />
    </div>
   </form>
   <div>
      <a href="http://www.openlinksw.com/">www.openlinksw.com</a>
   </div>
   <div>
      <a href="http://docs.openlinksw.com/">docs.openlinksw.com</a>
   </div>
    <br />
   <div>
      <a href="index.html">Book Home</a>
   </div>
    <br />
   <div>
      <a href="contents.html">Contents</a>
   </div>
   <div>
      <a href="preface.html">Preface</a>
   </div>
    <br />
   <div class="selected">
      <a href="accessinterfaces.html">Data Access Interfaces</a>
   </div>
    <br />
   <div>
      <a href="virtclientref.html">ADO.Net Data Provider</a>
   </div>
   <div>
      <a href="isql.html">Interactive SQL Utility</a>
   </div>
   <div>
      <a href="odbcimplementation.html">Virtuoso Driver for ODBC</a>
   </div>
   <div>
      <a href="VirtuosoDriverJDBC.html">Virtuoso Driver for JDBC</a>
   </div>
   <div class="selected">
      <a href="virtoledb.html">OLE DB Provider for Virtuoso</a>
    <div>
        <a href="#oledbusing" title="Using the OLE DB Provider for Virtuoso">Using the OLE DB Provider for Virtuoso</a>
        <a href="#oledblimitations" title="Known Limitations">Known Limitations</a>
        <a href="#oledbdatatypes" title="Data Types">Data Types</a>
        <a href="#metadata" title="Metadata">Metadata</a>
        <a href="#interfaces" title="Supported Interfaces">Supported Interfaces</a>
        <a href="#oledbdatasource" title="Data Source Objects">Data Source Objects</a>
        <a href="#oledbsessions" title="Sessions">Sessions</a>
        <a href="#oledbrowsets" title="Rowsets">Rowsets</a>
    </div>
   </div>
   <div>
      <a href="inprocess.html">Virtuoso In-Process Client</a>
   </div>
   <div>
      <a href="accintudsockets.html">Unix Domain Socket Connections</a>
   </div>
   <div>
      <a href="dataccessclientsconfailandbalance.html">Virtuoso Data Access Clients Connection Fail over and Load Balancing Support</a>
   </div>
    <br />
  </div>
  <div id="text">
  <a name="virtoledb" />
    <h2>7.5. OLE DB Provider for Virtuoso</h2>

  <p>OLE DB is an open data access technology developed and promoted by Microsoft.
  It allows for uniform data access across diverse data sources including but not
  limited to conventional RDBMSes. Based on the COM architecture it provides very
  flexible and exhaustive set of interfaces any database application developer might
  ever need.  At the same time, OLE DB is somewhat overcomplicated and therefore
  is rarely used directly.  In the majority of cases people use ADO(+) instead, ADO is
  another, somewhat simpler, of Microsoft&#39;s data access technologies. However, 
  ADO itself is based upon OLE DB, thus those who use ADO make indirect use of 
  OLE DB as well.</p>

  <p>With the advent of ADO.NET, OLE DB is no longer as an much essential 
  part of the overall Microsoft data access architecture as it used to be.  
  However it still remains important and useful working together with the 
  Microsoft OLE DB .NET Data Provider.</p>

  <p>The OLE DB Provider for Virtuoso (VIRTOLEDB) gives OLE DB and ADO 
  applications access to the Virtuoso databases.  In principle, the same thing is 
  possible through the conjunction of the Virtuoso ODBC driver and Microsoft 
  OLE DB Provider for ODBC.  However, VIRTOLEDB provides native OLE DB access 
  which is more complete and more efficient.  Therefore it is preferable for 
  this purpose.</p>



  
    <a name="oledbusing" />
    <h3>7.5.1. Using the OLE DB Provider for Virtuoso</h3>

    <p>Being a COM in-process server VIRTOLEDB has to be installed on the client computer.  
    When VIRTOLEDB is properly installed it can be used by a host of existing applications thanks 
    to the support of standard OLE DB interfaces.</p>

    
      <a name="oledbrequirements" />
    <h4>7.5.1.1. System Requirements</h4>

      <p>VIRTOLEDB requires the following software:
        <ul>
	  <li>
	    Windows 98, ME, NT4.0, 2000, or XP.
	  </li>
	  <li>
	    Virtuoso Server running on the same or remote computer.
	  </li>
	  <li>
	    Redistributable files provided with Microsoft Data Access Components 
          (MDAC) 2.5 or higher. Note that this version of MDAC comes along with 
          Windows 2000. It is also available (as well as other versions of MDAC) 
          at the Microsoft Web site: <a href="http://www.microsoft.com/data/">http://www.microsoft.com/data/</a>
	  </li>
	</ul>
      </p>

    <br />

    
      <a name="oledbinstalling" />
    <h4>7.5.1.2. Installing the Provider</h4>

      <p>VIRTOLEDB is installed as a part of Virtuoso installation on a Windows 
      platform. The following files pertain to the OLE DB Provider for Virtuoso.</p>

      <table class="data">
	<caption>Table: 7.5.1.2.1. OLE DB Provider for Virtuoso Files</caption>
	
	  
	    <tr>
 	      <th class="data">File</th>
	      <th class="data">Description</th>
	    </tr>
	  
	  
	    <tr>
 	      <td class="data">virtoledb.dll</td>
	      <td class="data">DLL that implements the VIRTOLEDB provider.</td>
	    </tr>
	    <tr>
 	      <td class="data">virtoledb.h</td>
	      <td class="data">Header file for development of VIRTOLEDB consumers.</td>
	    </tr>
	  
	
      </table>
    <br />

      <p>The installation procedure, in addition to placing VIRTOLEDB files 
      on a client computer, also registers VIRTOLEDB in the system to make it 
      known as a COM server. This also makes it available through the OLE DB 
      root enumerator object and the Data Links component.</p>

    <br />

    
      <a name="oledbinvoking" />
    <h4>7.5.1.3. Invoking the Provider</h4>

      <p>Applications that utilize OLE DB Data Links component can use VIRTOLEDB 
      without any specific measures. Applications that need to directly invoke 
      VIRTOLEDB should follow examples provided in this section.</p>

      
	<a name="datalinks" />
    <h5>7.5.1.3.1. Using Data Link User Interface</h5>

	<p>Data Links is a user interface component for connecting to OLE DB
        data sources and constructing ADO-style connection strings. It belongs
        to OLE DB core components and is a part of MDAC. It is used my many
        applications including development environments like MS Visual Studio.</p>

	<p>VIRTOLEDB uses the extension mechanism of the Data Link API and
        provides a customized version of the Data Link connection page.</p>

	<table class="figure" border="0" cellpadding="0" cellspacing="0">
    <tr>
     <td>
          <img alt="Data Link Provider Page" src="../images/datalinkprovider.jpg" />
     </td>
    </tr>
    <tr>
        <td>Figure: 7.5.1.3.1.1. Data Link Provider Page</td>
    </tr>
    </table>

	<table class="figure" border="0" cellpadding="0" cellspacing="0">
    <tr>
     <td>
          <img alt="Data Link Connection Page" src="../images/datalinkvirtuosoconnection.jpg" />
     </td>
    </tr>
    <tr>
        <td>Figure: 7.5.1.3.1.2. Data Link Connection Page</td>
    </tr>
    </table>

      <br />

      
	<a name="oledbcppapp" />
    <h5>7.5.1.3.2. Using COM and OLE DB Interfaces Directly</h5>

	<p>Applications that utilize OLE DB Data Links component can use VIRTOLEDB 
        without any specific measures. Applications that need to directly invoke 
        VIRTOLEDB should follow examples provided in this section.</p>

	
<div>
      <pre class="programlisting">
#define INITGUID
#include &quot;virtoledb.h&quot;

..

  IDBInitialize* pIDBInitialize = NULL;
  HRESULT hr = CoCreateInstance(CLSID_VIRTOLEDB, NULL, CLSCTX_INPROC_SERVER,
                                IID_IDBInitialize, (void**) &amp;pIDBInitialize);
  if (FAILED(hr))
    goto EXIT;
</pre>
    </div>
	
      <br />

      
	<a name="oledbadoapp" />
    <h5>7.5.1.3.3. ADO Applications</h5>

	
<div>
      <pre class="programlisting">
Dim strConn As String
Dim objConn As ADODB.Connection

strConn = &quot;Provider=VIRTOLEDB;Data Source=localhost:1111;User Id=dba;Password=dba;Initial Catalog=Demo;Prompt=NoPrompt;&quot;

Set objConn = New ADODB.Connection
objConn.CursorLocation = adUseServer
objConn.Open strConn
</pre>
    </div>
	
      <br />
    <br />

  <br />

  
    <a name="oledblimitations" />
    <h3>7.5.2. Known Limitations</h3>

    <ul>
      <li>
	Per-column properties are not supported.
      </li>
      <li>
	Reference accessors are not supported.
      </li>
      <li>
	Optimized accessors are not supported.
      </li>
      <li>
	Asynchronous execution is not supported.
      </li>
    </ul>

  <br />

  
    <a name="oledbdatatypes" />
    <h3>7.5.3. Data Types</h3>

    
      <a name="mappings" />
    <h4>7.5.3.1. Data Type Mappings in Rowsets and Parameters</h4>

      <p>The methods that provide information about rowset columns and command parameters
      (IColumnsInfo::GetColumnInfo, ICommandWithParameters::GetParameterInfo) use the
      mapping of Virtuoso data types into OLE DB data types shown in the following
      table.</p>

      <table class="data">
	<caption>Table: 7.5.3.1.1. Data Type Mappings</caption>
	
	  
	    <tr>
	      <th class="data">Virtuoso Type</th>
	      <th class="data">OLE DB Type</th>
	    </tr>
	  

	  
	    <tr>
	      <td class="data">CHAR</td>
	      <td class="data">DBTYPE_STR</td>
	    </tr>
	    <tr>
	      <td class="data">VARCHAR</td>
	      <td class="data">DBTYPE_STR</td>
	    </tr>
	    <tr>
	      <td class="data">LONG VARCHAR</td>
	      <td class="data">DBTYPE_STR</td>
	    </tr>
	    <tr>
	      <td class="data">NCHAR</td>
	      <td class="data">DBTYPE_WSTR</td>
	    </tr>
	    <tr>
	      <td class="data">NVARCHAR</td>
	      <td class="data">DBTYPE_WSTR</td>
	    </tr>
	    <tr>
	      <td class="data">LONG NVARCHAR</td>
	      <td class="data">DBTYPE_WSTR</td>
	    </tr>
	    <tr>
	      <td class="data">NUMERIC</td>
	      <td class="data">DBTYPE_NUMERIC</td>
	    </tr>
	    <tr>
	      <td class="data">DECIMAL</td>
	      <td class="data">DBTYPE_NUMERIC</td>
	    </tr>
	    <tr>
	      <td class="data">SMALLINT</td>
	      <td class="data">DBTYPE_I2</td>
	    </tr>
	    <tr>
	      <td class="data">INTEGER</td>
	      <td class="data">DBTYPE_I4</td>
	    </tr>
	    <tr>
	      <td class="data">FLOAT</td>
	      <td class="data">DBTYPE_R8</td>
	    </tr>
	    <tr>
	      <td class="data">DOUBLE</td>
	      <td class="data">DBTYPE_R8</td>
	    </tr>
	    <tr>
	      <td class="data">REAL</td>
	      <td class="data">DBTYPE_R4</td>
	    </tr>
	    <tr>
	      <td class="data">VARBINARY</td>
	      <td class="data">DBTYPE_BYTES</td>
	    </tr>
	    <tr>
	      <td class="data">LONG VARBINARY</td>
	      <td class="data">DBTYPE_BYTES</td>
	    </tr>
	    <tr>
	      <td class="data">DATE</td>
	      <td class="data">DBTYPE_DBDATE</td>
	    </tr>
	    <tr>
	      <td class="data">TIME</td>
	      <td class="data">DBTYPE_DBTIME</td>
	    </tr>
	    <tr>
	      <td class="data">DATETIME</td>
	      <td class="data">DBTYPE_DBTIMESTAMP</td>
	    </tr>
	    <tr>
	      <td class="data">TIMESTAMP</td>
	      <td class="data">BINARY</td>
	    </tr>
	  
	
      </table>
    <br />

    <br />

    
      <a name="conversions" />
    <h4>7.5.3.2. Data Type Conversions</h4>

      <p>Applications can bind column and parameter values using data types
      different from those described in . In such cases
      VIRTOLEDB uses OLE DB Data Conversion Library. See MDAC documentation for the
      list of supported data type conversions.</p>

    <br />

    
      <a name="longdata" />
    <h4>7.5.3.3. Long Data Types</h4>

      <p>Long data types include LONG VARCHAR, LONG NVARCHAR, and LONG VARBINARY.
      A long value can only be bound to a buffer that have one of these OLE DB types:</p>

      <ul>
	<li>DBTYPE_IUNKNOWN</li>
	<li>DBTYPE_STR</li>
	<li>DBTYPE_STR | DBTYPE_BYREF</li>
	<li>DBTYPE_WSTR</li>
	<li>DBTYPE_WSTR | DBTYPE_BYREF</li>
	<li>DBTYPE_BYTES</li>
	<li>DBTYPE_BYTES | DBTYPE_BYREF</li>
      </ul>

      <p>Other type conversions are not supported.</p>

      <p>If a long data is bound to a DBTYPE_IUNKNOWN type, this implies
      the use of the ISequentialStream interface. VIRTOLEDB supports the
      ISequentialStream::Read method both when getting and setting data.
      The ISequentialStream::Write method is never supported.</p>

    <br />

  <br />

  
    <a name="metadata" />
    <h3>7.5.4. Metadata</h3>

    
      <a name="schemas" />
    <h4>7.5.4.1. Schema Rowsets</h4>

      <p>VIRTOLEDB supports schema rowsets listed in the following table.</p>

      <table class="data">
	<caption>Table: 7.5.4.1.1. Supported Schema Rowsets</caption>

	
	  
	    <tr>
	      <th class="data">Schema Rowset</th>
	      <th class="data">Supported Restrictions</th>
	    </tr>
	  
	  
	    <tr>
	      <td class="data">DBSCHEMA_CATALOGS</td>
	      <td class="data">All (CATALOG_NAME)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_COLUMN_PRIVILEGES</td>
	      <td class="data">All (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, GRANTOR, GRANTEE)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_COLUMNS</td>
	      <td class="data">All (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_FOREIGN_KEYS</td>
	      <td class="data">All (PK_TABLE_CATALOG, PK_TABLE_SCHEMA, PK_TABLE_NAME,
                          FK_TABLE_CATALOG, FK_TABLE_SCHEMA, FK_TABLE_NAME)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_INDEXES</td>
	      <td class="data">1, 2, 3, and 5 (TABLE_CATALOG, TABLE_SCHEMA, INDEX_NAME, TABLE_NAME)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_PRIMARY_KEYS</td>
	      <td class="data">All (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_PROCEDURE_PARAMETERS</td>
	      <td class="data">All (PROCEDURE_CATALOG, PROCEDURE_SCHEMA, PROCEDURE_NAME, PARAMETER_NAME)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_PROCEDURES</td>
	      <td class="data">All (PROCEDURE_CATALOG, PROCEDURE_SCHEMA, PROCEDURE_NAME, PROCEDURE_TYPE)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_PROVIDER_TYPES</td>
	      <td class="data">All (DATA_TYPE, BEST_MATCH)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_SCHEMATA</td>
	      <td class="data">All (CATALOG_NAME, SCHEMA_NAME, SCHEMA_OWNER)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_TABLE_PRIVILEGES</td>
	      <td class="data">All (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, GRANTOR, GRANTEE)</td>
	    </tr>
	    <tr>
	      <td class="data">DBSCHEMA_TABLES</td>
	      <td class="data">All (TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE)</td>
	    </tr>
	  
	
      </table>
    <br />

    <br />

    
      <a name="columns" />
    <h4>7.5.4.2. Columns Rowset</h4>

      <p>VIRTOLEDB supports the following columns in the columns rowset.</p>

      <ul>
	<li>DBCOLUMN_IDNAME</li>
	<li>DBCOLUMN_GUID</li>
	<li>DBCOLUMN_PROPID</li>
	<li>DBCOLUMN_NAME</li>
	<li>DBCOLUMN_NUMBER</li>
	<li>DBCOLUMN_TYPE</li>
	<li>DBCOLUMN_TYPEINFO</li>
	<li>DBCOLUMN_COLUMNSIZE</li>
	<li>DBCOLUMN_PRECISION</li>
	<li>DBCOLUMN_SCALE</li>
	<li>DBCOLUMN_FLAGS</li>
	<li>DBCOLUMN_BASECATALOGNAME</li>
	<li>DBCOLUMN_BASECOLUMNNAME</li>
	<li>DBCOLUMN_BASESCHEMANAME</li>
	<li>DBCOLUMN_BASETABLENAME</li>
	<li>DBCOLUMN_COMPUTEMODE</li>
	<li>DBCOLUMN_DATETIMEPRECISION</li>
	<li>DBCOLUMN_ISCASESENSITIVE</li>
	<li>DBCOLUMN_ISSEARCHABLE</li>
	<li>DBCOLUMN_OCTETLENGTH</li>
	<li>DBCOLUMN_KEYCOLUMN</li>
      </ul>

    <br />

  <br />

  
    <a name="interfaces" />
    <h3>7.5.5. Supported Interfaces</h3>

    <p>VIRTOLEDB supports the interfaces listed in the following table.</p>

    <table class="data">
      <caption>Table: 7.5.5.1. Supported Interfaces</caption>
      
	
	  <tr>
	    <th class="data">Object</th>
	    <th class="data">Interface</th>
	    <th class="data">Notes</th>
	  </tr>
	
	

	  <tr>
	    <td class="data" rowspan="7">Data Source</td>
	    <td class="data">IDBCreateSession</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IDBInitialize</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IDBProperties</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IPersist</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IDBInfo</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IPersistFile</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ISupportErrorInfo</td>
	    <td class="data" />
	  </tr>

	  <tr>
	    <td class="data" rowspan="9">Session</td>
	    <td class="data">IGetDataSource</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IOpenRowset</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ISessionProperties</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IDBCreateCommand</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IDBSchemaRowset</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ISupportErrorInfo</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ITransaction</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ITransactionJoin</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ITransactionLocal</td>
	    <td class="data" />
	  </tr>

	  <tr>
	    <td class="data" rowspan="10">Command</td>
	    <td class="data">IAccessor</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IColumnsInfo</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ICommand</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ICommandProperties</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ICommandText</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IConvertType</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IColumnsRowset</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ICommandPrepare</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ICommandWithParameters</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ISupportErrorInfo</td>
	    <td class="data" />
	  </tr>

	  <tr>
	    <td class="data" rowspan="2">Multiple Results</td>
	    <td class="data">IMultipleResults</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ISupportErrorInfo</td>
	    <td class="data" />
	  </tr>

	  <tr>
	    <td class="data" rowspan="15">Rowset</td>
	    <td class="data">IAccessor</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IColumnsInfo</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IConvertType</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IRowset</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IRowsetInfo</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IColumnsRowset</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IConnectionPointContainer</td>
	    <td class="data">For IRowsetNotify interface.</td>
	  </tr>
	  <tr>
	    <td class="data">IRowsetChange</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IRowsetIdentity</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IRowsetLocate</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IRowsetRefresh</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IRowsetResynch</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IRowsetScroll</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">IRowsetUpdate</td>
	    <td class="data" />
	  </tr>
	  <tr>
	    <td class="data">ISupportErrorInfo</td>
	    <td class="data" />
	  </tr>

	  <tr>
	    <td class="data">Error Lookup</td>
	    <td class="data">IErrorLookup</td>
	    <td class="data" />
	  </tr>

	
      
    </table>
    <br />

  <br />

  
    <a name="oledbdatasource" />
    <h3>7.5.6. Data Source Objects</h3>

    
      <a name="initprops" />
    <h4>7.5.6.1. Initialization and Authorization Properties</h4>

      <p>VIRTOLEDB supports the following properties in the initialization property group.</p>

      <table class="data">
	<caption>Table: 7.5.6.1.1. Supported Initialization and Authorization Properties</caption>
	
	  

	    <tr>
	      <th class="data">Property</th>
	      <th class="data">R/W</th>
	      <th class="data">Default</th>
	      <th class="data">Notes</th>
	    </tr>

	  
	  

	    <tr>
	      <td class="data">DBPROP_AUTH_PASSWORD</td>
	      <td class="data">Read/Write</td>
	      <td class="data" />
	      <td class="data">General Info: Password</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_AUTH_USERID</td>
	      <td class="data">Read/Write</td>
              <td class="data" />
              <td class="data">User ID</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO</td>
	      <td class="data">Read/Write</td>
              <td class="data">VARIANT_FALSE</td>
              <td class="data">Persist Security Info</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_INIT_DATASOURCE</td>
	      <td class="data">Read/Write</td>
              <td class="data" />
              <td class="data">Data Source</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_INIT_CATALOG</td>
	      <td class="data">Read/Write</td>
              <td class="data" />
              <td class="data">Initial Catalog</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_INIT_PROVIDERSTRING</td>
	      <td class="data">Read/Write</td>
              <td class="data" />
	      <td class="data">Extended Properties</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_INIT_HWND</td>
	      <td class="data">Read/Write</td>
              <td class="data" />
              <td class="data">Window Handle</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_INIT_PROMPT</td>
	      <td class="data">Read/Write</td>
              <td class="data">DBPROMPT_COMPLETE</td>
              <td class="data">Prompt</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_INIT_TIMEOUT</td>
	      <td class="data">Read/Write</td>
              <td class="data">0</td>
              <td class="data">Connect Timeout</td>
	    </tr>

	  
	
      </table>
    <br />

      <p>In addition, VIRTOLEDB implements a provider-specific property set
      DBPROPSET_VIRTUOSODBINIT with the following properties</p>

      <table class="data">
	<caption>Table: 7.5.6.1.2. Provider-Specific Initialization and Authorization Properties</caption>
	
	  

	    <tr>
	      <th class="data">Property</th>
	      <th class="data">R/W</th>
	      <th class="data">Default</th>
	      <th class="data">Notes</th>
	    </tr>

	  
	  

	    <tr>
	      <td class="data">VIRTPROP_INIT_ENCRYPT</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data">
	        <p>Type: VT_BOOL</p>
		<p>Description: Encrypt Connection</p>
		<p>If this property is set to VARIANT_TRUE
	        the provider uses SSL encrypted connections.</p>
	      </td>
	    </tr>
	    <tr>
	      <td class="data">VIRTPROP_AUTH_PKCS12FILE</td>
	      <td class="data">Read/Write</td>
	      <td class="data" />
	      <td class="data">
		<p>Type: VT_BSTR</p>
		<p>Description: PKCS #12 File</p>
		<p>If this property is set to a non-empty
                string then it is used as a name of a PKCS #12
                file that authenticates the client. This
                also implies that the VIRTPROP_INIT_ENCRYPT
                property is set to VARIANT_TRUE</p>
              </td>
	    </tr>

	  
	
      </table>
    <br />

    <br />

    
      <a name="oledbdatasourceprops" />
    <h4>7.5.6.2. Data Source Properties</h4>

      <p>VIRTOLEDB supports the following properties in the data source property group.</p>

      <table class="data">
	<caption>Table: 7.5.6.2.1. Supported Data Source Properties</caption>
	
	  

	    <tr>
	      <th class="data">Property</th>
	      <th class="data">R/W</th>
	      <th class="data">Default</th>
	      <th class="data">Notes</th>
	    </tr>

	  
	  

	    <tr>
	      <td class="data">DBPROP_CURRENTCATALOG</td>
              <td class="data">Read/Write</td>
	      <td class="data" />
              <td class="data">Current Catalog</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_MULTIPLECONNECTIONS</td>
              <td class="data">Read/Write</td>
	      <td class="data" />
              <td class="data">Multiple Connections</td>
	    </tr>

	  
	
      </table>
    <br />
    <br />

    
      <a name="datasourceinfoprops" />
    <h4>7.5.6.3. Data Source Information Properties</h4>

      <p>VIRTOLEDB supports the following properties in the data source information property group.</p>

      <table class="data">
	<caption>Table: 7.5.6.3.1. Supported Data Source Information Properties</caption>
	
	  

	    <tr>
	      <th class="data">Property</th>
	      <th class="data">R/W</th>
	      <th class="data">Default</th>
	      <th class="data">Notes</th>
	    </tr>

	  
	  

	    <tr>
	      <td class="data">DBPROP_ACTIVESESSIONS</td>
	      <td class="data">Read-Only</td>
              <td class="data" />
              <td class="data">The number of connections the Virtuoso server is licensed to.</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_ASYNCTXNABORT</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data">VIRTOLEDB cannot abort transactions asynchronously.</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_ASYNCTXNCOMMIT</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data">VIRTOLEDB cannot commit transactions asynchronously.</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_BYREFACCESSORS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data">VIRTOLEDB does not support reference accessors.</td>
	    </tr>
	    <tr>
	      <td class="data">DBPROP_CATALOGLOCATION</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_CL_START</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_CATALOGTERM</td>
	      <td class="data">Read-Only</td>
	      <td class="data">&quot;qualifier&quot;</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_CATALOGUSAGE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_CU_DML_STATEMENTS | DBPROPVAL_CU_TABLE_DEFINITION | DBPROPVAL_CU_INDEX_DEFINITION | DBPROPVAL_CU_PRIVILEGE_DEFINITION</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_COLUMNDEFINITION</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_CD_NOTNULL</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_COMSERVICES</td>
	      <td class="data">Read-Only</td>
	      <td class="data">0</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_CONCATNULLBEHAVIOR</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_CB_NULL</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_CONNECTIONSTATUS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_CS_INITIALIZED</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_DATASOURCENAME</td>
	      <td class="data">Read-Only</td>
	      <td class="data">N/A</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_DATASOURCEREADONLY</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_DATASOURCE_TYPE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_DST_TDP</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_DBMSNAME</td>
	      <td class="data">Read-Only</td>
	      <td class="data">&quot;Virtuoso&quot;</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_DBMSVER</td>
	      <td class="data">Read-Only</td>
	      <td class="data" />
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_DSOTHREADMODEL</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_RT_FREETHREAD</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_GROUPBY</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_GB_NO_RELATION</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_HETEROGENEOUSTABLES</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_HT_DIFFERENT_CATALOGS</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_IDENTIFIERCASE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_IC_SENSITIVE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_MAXINDEXSIZE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">2000</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_MAXOPENCHAPTERS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">0</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_MAXROWSIZE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">2000</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_MAXROWSIZEINCLUDESBLOB</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_MAXTABLESINSELECT</td>
	      <td class="data">Read-Only</td>
	      <td class="data">0</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_MULTIPLEPARAMSETS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_MULTIPLERESULTS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_MR_SUPPORTED</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_MULTIPLESTORAGEOBJECTS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_MULTITABLEUPDATE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_NULLCOLLATION</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_NC_HIGH</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_OLEOBJECTS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_OO_BLOB</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_OPENROWSETSUPPORT</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_ORS_TABLE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_ORDERBYCOLUMNSINSELECT</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_OUTPUTPARAMETERAVAILABILITY</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_OA_ATROWRELEASE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_PERSISTENTIDTYPE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_PT_NAME</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_PREPAREABORTBEHAVIOR</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_CB_PRESERVE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_PREPARECOMMITBEHAVIOR</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_CB_PRESERVE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_PROCEDURETERM</td>
	      <td class="data">Read-Only</td>
	      <td class="data">&quot;procedure&quot;</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_PROVIDERFRIENDLYNAME</td>
	      <td class="data">Read-Only</td>
	      <td class="data">&quot;OpenLink OLE DB Provider for Virtuoso&quot;</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_PROVIDERMEMORY</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_PROVIDERFILENAME</td>
	      <td class="data">Read-Only</td>
	      <td class="data">&quot;virtoledb.dll&quot;</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_PROVIDEROLEDBVER</td>
	      <td class="data">Read-Only</td>
	      <td class="data">&quot;02.60&quot;</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_PROVIDERVER</td>
	      <td class="data">Read-Only</td>
	      <td class="data" />
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_QUOTEDIDENTIFIERCASE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_IC_SENSITIVE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_ROWSETCONVERSIONSONCOMMAND</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_SCHEMATERM</td>
	      <td class="data">Read-Only</td>
	      <td class="data">&quot;owner&quot;</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_SCHEMAUSAGE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_SU_DML_STATEMENTS | DBPROPVAL_SU_TABLE_DEFINITION | DBPROPVAL_SU_INDEX_DEFINITION | DBPROPVAL_SU_PRIVILEGE_DEFINITION</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_SERVERNAME</td>
	      <td class="data">Read-Only</td>
	      <td class="data" />
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_SQLSUPPORT</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_SQL_ODBC_MINIMUM | DBPROPVAL_SQL_ODBC_CORE | DBPROPVAL_SQL_ANSI89_IEF | DBPROPVAL_SQL_ESCAPECLAUSES | DBPROPVAL_SQL_ANSI92_ENTRY</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_STRUCTUREDSTORAGE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_SS_ISEQUENTIALSTREAM</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_SUBQUERIES</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_SQ_CORRELATEDSUBQUERIES | DBPROPVAL_SQ_COMPARISON | DBPROPVAL_SQ_EXISTS | DBPROPVAL_SQ_IN | DBPROPVAL_SQ_QUANTIFIED | DBPROPVAL_SQ_TABLE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_SUPPORTEDTXNDDL</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_TC_DML</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_SUPPORTEDTXNISOLEVELS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_TI_READUNCOMMITTED | DBPROPVAL_TI_READCOMMITTED | DBPROPVAL_TI_REPEATABLEREAD | DBPROPVAL_TI_SERIALIZABLE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_SUPPORTEDTXNISORETAIN</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_TR_DONTCARE</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_TABLESTATISTICS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">0</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_TABLETERM</td>
	      <td class="data">Read-Only</td>
	      <td class="data">&quot;table&quot;</td>
	      <td class="data" />
	    </tr>
 	    <tr>
	      <td class="data">DBPROP_USERNAME</td>
	      <td class="data">Read-Only</td>
	      <td class="data">N/A</td>
	      <td class="data" />
	    </tr>

	  
	
      </table>
    <br />
    <br />

  <br />

  
    <a name="oledbsessions" />
    <h3>7.5.7. Sessions</h3>

    
      <a name="oledbsession-properties" />
    <h4>7.5.7.1. Session Properties</h4>

      <p>VIRTOLEDB supports the following properties in the session property group.</p>

      <table class="data">
	<caption>Table: 7.5.7.1.1. Supported Session Properties</caption>
	
	  

	    <tr>
	      <th class="data">Property</th>
	      <th class="data">R/W</th>
	      <th class="data">Default</th>
	      <th class="data">Notes</th>
	    </tr>

	  
	  

	    <tr>
	      <td class="data">DBPROP_SESS_AUTOCOMMITISOLEVELS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">DBPROPVAL_TI_REPEATABLEREAD</td>
	      <td class="data">Isolation level in auto-commit mode.</td>
	    </tr>

	  
	
      </table>
    <br />
    <br />

  <br />

 

  
    <a name="oledbrowsets" />
    <h3>7.5.8. Rowsets</h3>

    
      <a name="oledbrowsetproperties" />
    <h4>7.5.8.1. Properties</h4>

      <table class="data">
	<caption>Table: 7.5.8.1.1. Supported Rowset Properties</caption>
	
	  

	    <tr>
	      <th class="data">Property</th>
	      <th class="data">R/W</th>
	      <th class="data">Default</th>
	      <th class="data">Notes</th>
	    </tr>

	  
	  

	    <tr>
	      <td class="data">DBPROP_ABORTPRESERVE</td>
	      <td class="data">Read/Write</td>
	      <td class="data" />
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_ACCESSORDER</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_AO_RANDOM</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_BLOCKINGSTORAGEOBJECTS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_BOOKMARKINFO</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_BI_CROSSROWSET</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_BOOKMARKS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_BOOKMARKSKIPPED</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_BOOKMARKTYPE</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_BMK_NUMERIC</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_CACHEDEFERRED</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_CANFETCHBACKWARDS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_CANHOLDROWS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_CANSCROLLBACKWARDS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_CHANGEINSERTEDROWS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_COLUMNRESTRICT</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_COMMANDTIMEOUT</td>
	      <td class="data">Read/Write</td>
	      <td class="data" />
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_COMMITPRESERVE</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_DEFERRED</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE or VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_DELAYSTORAGEOBJECTS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_FINDCOMPAREOPS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">0</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_HIDDENCOLUMNS</td>
	      <td class="data">Read-Only</td>
	      <td class="data" />
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IAccessor</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IColumnsInfo</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IColumnsRowset</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IConnectionPointContainer</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IConvertType</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IMMOBILEROWS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IMultipleResults</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IRowset</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IRowsetChange</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IRowsetIdentity</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IRowsetInfo</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IRowsetLocate</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IRowsetRefresh</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IRowsetResynch</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IRowsetScroll</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_IRowsetUpdate</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_ISequentialStream</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_ISupportErrorInfo</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_LITERALBOOKMARKS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_LITERALIDENTITY</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_LOCKMODE</td>
	      <td class="data">Read/Write</td>
	      <td class="data">DBPROPVAL_LM_NONE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_MAXOPENROWS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">0</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_MAXPENDINGROWS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">0</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_MAXROWS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">0</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_NOTIFICATIONGRANULARITY</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_NT_SINGLEROW</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_NOTIFICATIONPHASES</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO | DBPROPVAL_NP_SYNCHAFTER | DBPROPVAL_NP_FAILEDTODO | DBPROPVAL_NP_DIDEVENT</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">
		DBPROP_NOTIFYCOLUMNSET
		DBPROP_NOTIFYROWDELETE
		DBPROP_NOTIFYROWFIRSTCHANGE
		DBPROP_NOTIFYROWINSERT
		DBPROP_NOTIFYROWRESYNCH
		DBPROP_NOTIFYROWSETCHANGED
		DBPROP_NOTIFYROWSETFETCHPOSITIONCHANGE
		DBPROP_NOTIFYROWSETRELEASE
		DBPROP_NOTIFYROWUNDOCHANGE
		DBPROP_NOTIFYROWUNDODELETE
		DBPROP_NOTIFYROWUNDOINSERT
		DBPROP_NOTIFYROWUPDATE
              </td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_NP_OKTODO | DBPROPVAL_NP_ABOUTTODO | DBPROPVAL_NP_SYNCHAFTER</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_ORDEREDBOOKMARKS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_OTHERINSERT</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_OTHERUPDATEDELETE</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_OWNINSERT</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_OWNUPDATEDELETE</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_QUICKRESTART</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_REENTRANTEVENTS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_REMOVEDELETED</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_REPORTMULTIPLECHANGES</td>
	      <td class="data">Read-Onle</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_RETURNPENDINGINSERTS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_ROWRESTRICT</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_ROWSET_ASYNCH</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_ROWTHREADMODEL</td>
	      <td class="data">Read-Only</td>
	      <td class="data">DBPROPVAL_RT_FREETHREAD</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_SERVERCURSOR</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_SERVERDATAONINSERT</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_SKIPROWCOUNTRESULTS</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_TRUE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_STRONGIDENTITY</td>
	      <td class="data">Read-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_TRANSACTEDOBJECT</td>
	      <td class="data">Reaq-Only</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_UNIQUEROWS</td>
	      <td class="data">Read/Write</td>
	      <td class="data">VARIANT_FALSE</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">DBPROP_UPDATABILITY</td>
	      <td class="data">Read/Write</td>
	      <td class="data">0</td>
	      <td class="data" />
	    </tr>

	  
	
      </table>
    <br />

    <br />

    
      <a name="rowset-interfaces" />
    <h4>7.5.8.2. Interfaces</h4>

      <p>VIRTOLEDB supports the following rowset interfaces.</p>

      <table class="data">
	<caption>Table: 7.5.8.2.1. Supported Rowset Interfaces</caption>
	
	  
	    <tr>
	      <th class="data">Interface</th>
	      <th class="data">Description</th>
	    </tr>
	  
	  
	    <tr>
	      <td class="data">IAccessor</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">IColumnsInfo</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">IConvertType</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">IRowset</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">IRowsetChange</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">IRowsetIdentity</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">IRowsetInfo</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">IRowsetLocate</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">IRowsetScroll</td>
	      <td class="data" />
	    </tr>
	    <tr>
	      <td class="data">ISupportErrorInfo</td>
	      <td class="data" />
	    </tr>
	  
	
      </table>
    <br />
    <br />

  <br />

<table border="0" width="90%" id="navbarbottom">
    <tr>
        <td align="left" width="33%">
          <a href="VirtuosoDriverJDBC.html" title="Virtuoso Driver for JDBC">Previous</a>
          <br />Virtuoso Driver for JDBC</td>
     <td align="center" width="34%">
          <a href="accessinterfaces.html">Chapter Contents</a>
     </td>
        <td align="right" width="33%">
          <a href="inprocess.html" title="Virtuoso In-Process Client">Next</a>
          <br />Virtuoso In-Process Client</td>
    </tr>
    </table>
  </div>
  <div id="footer">
    <div>Copyright© 1999 - 2009 OpenLink Software All rights reserved.</div>
   <div id="validation">
    <a href="http://validator.w3.org/check/referer">
        <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" />
    </a>
    <a href="http://jigsaw.w3.org/css-validator/">
        <img src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" height="31" width="88" />
    </a>
   </div>
  </div>
 </body>
</html>