Sophie

Sophie

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

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=".html" title="" />
  <link rel="next" href="isql.html" title="Interactive SQL Utility" />
  <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="virtclientref" />
    <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="accessinterfaces.html" title="Data Access Interfaces">Prev</a> | <a class="link" href="isql.html" title="Interactive SQL Utility">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 class="selected">
      <a href="virtclientref.html">ADO.Net Data Provider</a>
    <div>
        <a href="#virtclientrefintro" title="Introduction">Introduction</a>
        <a href="#virtclientrefinstallandconfig" title="Installation &amp; Configuration">Installation &amp; Configuration</a>
        <a href="#virtclientrefprogrammersguide" title="Programmers Guide">Programmers Guide</a>
    </div>
   </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>
      <a href="virtoledb.html">OLE DB Provider for Virtuoso</a>
   </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="virtclientref" />
    <h2>7.1. ADO.Net Data Provider</h2>
      
        <a name="virtclientrefintro" />
    <h3>7.1.1. Introduction</h3>
        <p>Virtuoso includes an ADO.NET 2.x &amp; 3.x  data providers compatible with Visual Studio
2008 and Entity Frameworks, that provides access to native Virtuoso data (SQL, XML, and RDF) in
addition to any Virtuoso Linked Tables from external <a href="">ODBC</a>
and <a href="">JDBC</a> accessible data sources.
Known-compatible external data sources include <a href="">Oracle (versions 7.x to 11.x)</a>,
<a href="">Microsoft SQL Server (6.x to 2005)</a>,
<a href="">IBM DB2</a>, <a href="">Sybase (4.2 to 15.x)</a>,
<a href="">IBM Informix (5.x to 11.x)</a>,
<a href="">Ingres (6.4 to 9.x)</a>,
<a href="">Progress (7.x to 10.x)</a>,
<a href="">MySQL</a>,
<a href="">PostgreSQL</a> and <a href="">Firebird</a>.</p>
        <p>
      <strong>Benefits</strong>
    </p>
        <p>This provider equips Microsoft .NET based applications, development environments,
and programming languages with conceptual entity-based access to native and heterogeneous data sources.</p>
        <p>
      <strong>Features</strong>
    </p>
        <ul>
          <li>ADO.NET 3.5 compliance</li>
          <li>.NET Entity Frameworks compatibility</li>
          <li>Full integration with Visual Studio 2008</li>
          <li>ADO.NET Data Services compatibility</li>
          <li>LINQ to Entities compatibility </li>
          <li>High-Performance &amp; Scalability </li>
          <li>High Security</li>
          <li>Support for Native and 3rd party ODBC and JDBC accessible RDBMS engines and Web Services</li>
          <li>Tested against all major .NET applications and development environments</li>
          <li>Support for Microsoft Siliverlight versions 2 and 3</li>
          <li>Support for .Net RIA Services</li>
        </ul>
      <br />
      
        <a name="virtclientrefinstallandconfig" />
    <h3>7.1.2. Installation &amp; Configuration</h3>
        <p>There are two installation types to consider:</p>
        <ul>
          <li>If you have an existing Virtuoso instance, or will install Virtuoso on a different
host, you only need to install of the <a href="virtclientref.html#virtclientrefinstallandconfigonwin">ADO.Net Provider Client</a> on the Visual Studio host.</li>
          <li>If you have no existing Virtuoso instance, you can
<a href="virtclientref.html#virtclientrefinstallandconfigvirt">install both the ADO.Net Provider Client and the Virtuoso Universal Server</a> on the Visual Studio host.</li>
        </ul>
        <a name="virtclientrefinstallandconfigonwin" />
    <h4>7.1.2.1. Installation of the ADO.Net Provider Client on Windows</h4>
          <p>The Virtuoso ADO.Net Provider is part of the Virtuoso Client Connectivity Kit installer,
and if the target Virtuoso Server installation  already exists on the network this is the only component
that needs to be installed.
          </p>
          <ol>
      <li>Download and run the Virtuoso Client Connectivity Kit installer for your target Windows OS:
              <ul>
                <li>
            <a href="http://download.openlinksw.com/download/login.vsp?pfam=2&amp;pform=26&amp;pcat=51&amp;prod=virtuoso-connect-psnl&amp;os=i686-generic-win-32&amp;release-dbms=5.0-virt50">Windows 98/NT/2000/XP/2003/Vista/2008 (32 Bit) (x86)</a>
          </li>
                <li>
            <a href="http://download.openlinksw.com/download/login.vsp?pfam=2&amp;pform=26&amp;pcat=51&amp;prod=virtuoso-connect-psnl&amp;os=x86_64-generic-win-64&amp;release-dbms=5.0-virt50">Windows XP/2003/Vista/2008 (64 Bit) (x86_64) </a>
          </li>
              </ul>
            </li>
      <li>Choose the &quot;run&quot; button to allow the signed &quot;Virtuoso Client Connectivity kit&quot; installer to start.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Run" src="../images/ui/ado1.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1. Run</td>
      </tr>
        </table>
            </li>
      <li>Choose the &quot;Next&quot; button to begin the installation process.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Installation: Next" src="../images/ui/ado3.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1. Installation: Next</td>
      </tr>
        </table>
            </li>
      <li>Check the &quot;I agree with license agreement&quot; checkbox and choose the &quot;Next&quot; button.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Installation: Agree license" src="../images/ui/ado4.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1. Installation: Agree license</td>
      </tr>
        </table>
            </li>
      <li>Choose the &quot;Custom&quot; option to manually select what components are installed and in which location, or choose the &quot;Typical&quot; or &quot;Complete&quot; options as recommended and skip to step 7.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Custom Install" src="../images/ui/ado5.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1. Custom Install</td>
      </tr>
        </table>
            </li>
      <li>If the &quot;Custom&quot; option what chosen, select the installation directory or leave default and choose the &quot;Next&quot; button to continue.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Installation" src="../images/ui/ado6.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1. Installation</td>
      </tr>
        </table>
            </li>
      <li>Select which of the ADO.NET Providers are to be installed and choose &quot;Next&quot; to continue.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="ADO.NET Providers" src="../images/ui/ado7.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1. ADO.NET Providers</td>
      </tr>
        </table>
            </li>
      <li>The installer is now ready to begin the installation, choose the &quot;Install&quot; button to commence the process.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Install" src="../images/ui/ado8.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1. Install</td>
      </tr>
        </table>
            </li>
      <li>The installation was successfully completed.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Completed installation" src="../images/ui/ado10.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1. Completed installation</td>
      </tr>
        </table>
            </li>
      <li>The installation of the Provider can be verified by checking the %WINDOWS%\assembly folder and checking that the Provider(s) chosen for installation is(are) listed - &quot;virtado3&quot; and/or &quot;virtado2&quot;.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Provider" src="../images/ui/adon8.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1. Provider</td>
      </tr>
        </table>
            </li>
    </ol>
          <p>The installation of the ADO.Net Provider Client is complete.</p>

          
            <a name="virtclientrefinstallandconfigonwinuninst" />
    <h5>7.1.2.1.1. Uninstallation</h5>
            <ol>
      <li>If you attempt to run the installer again, the following message will be displayed.
                <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Installer message" src="../images/ui/adon9.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1.1. Installer message</td>
      </tr>
        </table>
              </li>
      <li>The Provider can be uninstalled from the &quot;Control Panel&quot; -&gt; &quot;Programs and Features&quot;
menu, by selecting the &quot;Virtuoso Client Connectivity kit&quot; from the list of installed components and clicking
the &quot;unistall&quot; option presented.
                <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Uninstall" src="../images/ui/ado11.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1.1. Uninstall</td>
      </tr>
        </table>
              </li>
      <li>Choose &quot;Yes&quot; to uninstall the Virtuoso ADO.Net Provider.
                <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Uninstall" src="../images/ui/ado12.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.1.1.1. Uninstall</td>
      </tr>
        </table>
              </li>
    </ol>
          <br />
        <br />
        <a name="virtclientrefinstallandconfigvirt" />
    <h4>7.1.2.2. Installation of the ADO.Net Provider Client and Virtuoso Universal Server on Windows</h4>
          <p>If both the ADO.Net Provider client and Virtuoso Server are to be installed on the same
Windows machine, then the Virtuoso Universal Server installer can be used as it includes all the Virtuoso
client and server components available in a single installer. An instance in which this particular
installation type is require would be when using the Provider to provide Entity Framework connectivity
to the remote database schema objects.</p>
          <ol>
      <li>Download and run the Virtuoso Universal Server installer for your target Windows OS:
              <ul>
                <li>
            <a href="http://download.openlinksw.com/download/login.vsp?pfam=2&amp;pform=26&amp;pcat=47&amp;prod=virtuoso-uim-unisvr-psnl&amp;os=i686-generic-win-32&amp;os2=i686-generic-win-32&amp;xpfam=virtuoso&amp;xpform=personal&amp;xpcat=unisvr&amp;xos=i686-generic-win-32&amp;xprod=virtuoso-uim-unisvr-psnl&amp;release-dbms=5.0-virt50&amp;proceed=Next+%3E">Windows 98/NT/2000/XP/2003/Vista/2008 (32 Bit) (x86)</a>
          </li>
                <li>
            <a href="http://download.openlinksw.com/download/login.vsp?pfam=2&amp;pform=26&amp;pcat=47&amp;prod=virtuoso-uim-unisvr-psnl&amp;os=x86_64-generic-win-64&amp;os2=x86_64-generic-win-64&amp;xpfam=virtuoso&amp;xpform=personal&amp;xpcat=unisvr&amp;xos=x86_64-generic-win-64&amp;xprod=virtuoso-uim-unisvr-psnl&amp;release-dbms=5.0-virt50&amp;proceed=Next+%3E">Windows XP/2003/Vista/2008 (64 Bit) (x86_64)</a>
          </li>
              </ul>
            </li>
      <li>Choose the &quot;run&quot; button to allow the signed &quot;Virtuoso Universal Server&quot; installer to start.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Run" src="../images/ui/adow1.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Run</td>
      </tr>
        </table>
            </li>
      <li>Choose the &quot;Next&quot; button to begin the installation process.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Next" src="../images/ui/adow3.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Next</td>
      </tr>
        </table>
            </li>
      <li>Check the &quot;I agree with license agreement&quot; checkbox and choose the &quot;Next&quot; button.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Agree license" src="../images/ui/adow4.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Agree license</td>
      </tr>
        </table>
            </li>
      <li>Choose the &quot;Custom&quot; option to manually select what components are installed and in which location, or choose the &quot;Typical&quot; or &quot;Complete&quot; options as recommended and skip to step 7.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Custom option" src="../images/ui/adow5.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Custom option</td>
      </tr>
        </table>
            </li>
      <li>If the &quot;Custom&quot; option what chosen, select the installation directory or leave default and choose the &quot;Next&quot; button to continue.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Installation directory" src="../images/ui/adow6.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Installation directory</td>
      </tr>
        </table>
            </li>
      <li>Select which of the ADO.NET Providers are to be installed and choose &quot;Next&quot; to continue.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="ADO.NET Providers" src="../images/ui/adow8.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. ADO.NET Providers</td>
      </tr>
        </table>
            </li>
      <li>The installer is now ready to begin the installation, choose the &quot;Install&quot; button to commence the process.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Begin installation" src="../images/ui/adow9.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Begin installation</td>
      </tr>
        </table>
            </li>
      <li>The installation was successfully completed.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Installation completed" src="../images/ui/adow11.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Installation completed</td>
      </tr>
        </table>
            </li>
      <li>Post installation the Virtuoso Server can be started by running the &quot;Virtuoso Service Manager&quot; which gets added to the Windows &quot;Icons Tray&quot; in the status bar.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Post installation" src="../images/ui/adow12.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Post installation</td>
      </tr>
        </table>
            </li>
      <li>Double click on the  &quot;Virtuoso Service Manager&quot; icon in the &quot;Icons Tray&quot; to load the application, select the &quot;OpenLink Virtuoso Server&quot; instance and press the &quot;Start&quot; button to run the Service.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Virtuoso Service Manager" src="../images/ui/adow13.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Virtuoso Service Manager</td>
      </tr>
        </table>
            </li>
      <li>Once the Virtuoso service has successfully started, it is *recommended* that the default &quot;dba&quot; and &quot;dav&quot; passwords be changed to secure values by loading the URL &quot;http://localhost:8890/install&quot; in a Web Browser which loads the following page for making these changes.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Defaults" src="../images/ui/adow15.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Defaults</td>
      </tr>
        </table>
            </li>
      <li>The Virtuoso Server is now available for use.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Virtuoso Server" src="../images/ui/adow16.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Virtuoso Server</td>
      </tr>
        </table>
            </li>
      <li>The installation of the ADO.Net Provider can be verified by checking the %WINDOWS%\assembly folder and checking that the Provider(s) chosen for installation is(are) listed - &quot;virtado3&quot; and/or &quot;virtado2&quot;.
              <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Installation verification" src="../images/ui/adon8.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1. Installation verification</td>
      </tr>
        </table>
            </li>
    </ol>
          <p>The installation of the ADO.Net Provider Client and Virtuoso Universal Server is complete.</p>
          
            <a name="virtclientrefinstallandconfigvirtuninst" />
    <h5>7.1.2.2.1. Uninstallation</h5>
            <ol>
      <li>If you attempt to run the installer again, the following message will be displayed.
                <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Installer message" src="../images/ui/adon9.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1.1. Installer message</td>
      </tr>
        </table>
              </li>
      <li>The Provider can be uninstalled from the &quot;Control Panel&quot; -&gt; &quot;Programs and Features&quot; menu, by selecting the &quot;Virtuoso Client Connectivity kit&quot; from the list of installed components and clicking the &quot;unistall&quot; option presented.
                <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Uninstall" src="../images/ui/ado11.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1.1. Uninstall</td>
      </tr>
        </table>
              </li>
      <li>Choose &quot;Yes&quot; to uninstall the Virtuoso ADO.Net Provider.
                <table class="figure" border="0" cellpadding="0" cellspacing="0">
      <tr>
       <td>
              <img alt="Uninstall" src="../images/ui/ado13.png" />
       </td>
      </tr>
      <tr>
            <td>Figure: 7.1.2.2.1.1. Uninstall</td>
      </tr>
        </table>
              </li>
    </ol>
          <br />
        <br />
      <br />
      
        <a name="virtclientrefprogrammersguide" />
    <h3>7.1.3. Programmers Guide</h3>
        <a name="virtclientrefprogrammersguidewalk" />
    <h4>7.1.3.1. Sample Walk through Applications</h4>
<ul>
  <li>
        <a href="installvsgrid.html">Using Visual Studio 2008 to Build a Data Grid Form Application</a>
      </li>
  <li>
        <a href="installvsent.html">Using Visual Studio 2008 to Build an Entity Frameworks based Windows Form Application</a>
      </li>
  <li>
        <a href="installusado.html">Using Visual Studio 2008 to Build an ADO.NET Data Services based Application</a>
      </li>
  <li>
        <a href="installwfas.html">Windows Form Application for accessing Virtuoso RDF data via SPASQL using the Virtuoso ADO.Net Provider</a>
      </li>
  <li>
        <a href="installcrweb.html">Web Data Service Application for accessing Virtuoso RDF data via SPASQL using the Virtuoso ADO.Net Provider</a>
      </li>
  <li>
        <a href="installsilver.html">Creating a Silverlight Application to consume the service</a>
      </li>
  <li>
        <a href="installnetriadd.html">Creating A Simple .NET RIA Services Application to Display Data from Virtuoso</a>
      </li>
  <li>
        <a href="installnetriavd.html">Creating a .Net RIA Services Application that will Update Virtuoso Data</a>
      </li>

</ul>
        <br />
        <a name="virtclientrefprogrammersguideentfr" />
    <h4>7.1.3.2. Using Entity Frameworks, ADO.NET, the Virtuoso Virtual Database Engine</h4>
          <p>Virtuoso&#39;s in-built virtual database engine for ODBC and JDBC accessible databases enables it
to act as bridge between Entity Frameworks &amp; ADO.NET based client applications. Thus, you simply link
external databases into Virtuoso using the browser based Conductor UI or programmatically using SQL
extensions. Once the external tables a linked/attached, they inherit the functionality prowess of Virtuoso,
and this particular use case scenario, complete compatibility with Entity Frameworks and ADO.NET 3.5.</p>
<ul>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access Oracle Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access Progress Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access Ingres Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access Informix Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access DB2 Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access Sybase Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access MySQL Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access PostgreSQL Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access JDBC Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access ODBC Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access Firebird Schema Objects with Virtuoso</a>
      </li>
  <li>
        <a href="">Using Microsoft Entity Frameworks to Access Microsoft SQL Server Schema Objects with Virtuoso</a>
      </li>
</ul>
        <br />
      
	<a name="vcrvirtdbtype" />
    <h4>7.1.3.3. VirtDbType Enumeration</h4>

	<p>Specifies Virtuoso data types.</p>

	
	  <h4>Members</h4>

	  <table class="data">
	    
	      
		<tr>
		  <th class="data">Member name</th>
		  <th class="data">Description</th>
		</tr>
	      
	      
		<tr>
		  <td class="data">
          <span class="computeroutput">Binary</span>
        </td>
		  <td class="data">BINARY data. This maps to an <span class="computeroutput">Array</span> of type <span class="computeroutput">Byte</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">Char</span>
        </td>
		  <td class="data">CHAR data. This maps to <span class="computeroutput">String</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">Date</span>
        </td>
		  <td class="data">DATE data. This maps to <span class="computeroutput">DateTime</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">DateTime</span>
        </td>
		  <td class="data">DATETIME data. This maps to <span class="computeroutput">DateTime</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">Decimal</span>
        </td>
		  <td class="data">This is equal to <span class="computeroutput">Numeric</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">Double</span>
        </td>
		  <td class="data">DOUBLE PRECISION data. This maps to <span class="computeroutput">Double</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">Float</span>
        </td>
		  <td class="data">This is equal to Double.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">Integer</span>
        </td>
		  <td class="data">INTEGER data. This maps to <span class="computeroutput">Int32</span>
        </td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">LongBinary</span>
        </td>
		  <td class="data">LONG BINARY data. This maps to an <span class="computeroutput">Array</span> of type <span class="computeroutput">Byte</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">LongNVarChar</span>
        </td>
		  <td class="data">LONG NVARCHAR data. This maps to <span class="computeroutput">String</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">LongVarChar</span>
        </td>
		  <td class="data">LONG VARCHAR data. This maps to <span class="computeroutput">String</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">NChar</span>
        </td>
		  <td class="data">NChar data. This maps to <span class="computeroutput">String</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">Numeric</span>
        </td>
		  <td class="data">NUMERIC data. This maps to <span class="computeroutput">Decimal</span>
        </td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">NVarChar</span>
        </td>
		  <td class="data">NVARCHAR data. This maps to <span class="computeroutput">String</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">Real</span>
        </td>
		  <td class="data">REAL data, This maps to <span class="computeroutput">Single</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">SmallInt</span>
        </td>
		  <td class="data">SMALLINT data. This maps to <span class="computeroutput">Int16</span>
        </td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">Time</span>
        </td>
		  <td class="data">TIME data. This maps to <span class="computeroutput">TimeSpan</span>
        </td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">TimeStamp</span>
        </td>
		  <td class="data">TIMESTAMP data. This maps to an <span class="computeroutput">Array</span> of type <span class="computeroutput">Byte</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">VarBinary</span>
        </td>
		  <td class="data">VARBINARY data. This maps to an <span class="computeroutput">Array</span> of type <span class="computeroutput">Byte</span>.</td>
		</tr>
		<tr>
		  <td class="data">
          <span class="computeroutput">VarChar</span>
        </td>
		  <td class="data">VARCHAR data. This maps to <span class="computeroutput">String</span>.</td>
		</tr>
	      
	    
	  </table>
    <br />

	<br />

      <br />

      
	<a name="vcrvirtuosocommandclass" />
    <h4>7.1.3.4. VirtuosoCommand Class</h4>

	<p>Represents an SQL statement or stored procedure to execute against a Virtuoso database.
This class cannot be inherited.</p>

  <table class="figure" border="0" cellpadding="0" cellspacing="0">
    <tr>
     <td>
          <img alt="Virtuoso .Net Provider VirtuosoCommand Class" src="../images/VirtProviderClassHier.jpg" />
     </td>
    </tr>
    <tr>
        <td>Figure: 7.1.3.4.1. Virtuoso .Net Provider VirtuosoCommand Class</td>
    </tr>
    </table>

  

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoCommand</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">Component</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">ICloneable</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDbCommand</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>

	  <p>The VirtuosoCommand class provides the following methods for executing
commands against a Virtuoso database:</p>
	  <table class="data">
	    
	      
		<tr>
		  <th class="data">Item</th>
		  <th class="data">Description</th>
		</tr>
	      
	      
		<tr>
		  <td class="data">ExecuteReader</td>
		  <td class="data">Executes commands that return rows.</td>
		</tr>
		<tr>
		  <td class="data">ExecuteNonQuery</td>
		  <td class="data">Executes commands such as SQL INSERT, DELETE, UPDATE, and SET statements.</td>
		</tr>
		<tr>
		  <td class="data">ExecuteScalar</td>
		  <td class="data">Retrieves a single value (for example, an aggregate value) from a database.</td>
		</tr>
	      
	    
	  </table>
    <br />

	<br />

	
	  <h4>VirtuosoCommand Constructor</h4>

	  <p>Initializes a new instance of the VirtuosoCommand class.</p>

	  
	    <h4>VirtuosoCommand Constructor ()</h4>

	    <p>Initializes a new instance of the VirtuosoCommand class.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoCommand</div>
	      <div class="void" />
	    </td>
    </tr>
    </table>

	    
	      <h4>Remarks</h4>

	      <p>The base constructor initializes all fields to their default values.
The following table shows initial property values for an instance of VirtuosoCommand.</p>

	      <table class="data">
		
		  
		    <tr>
		      <th class="data">Properties</th>
		      <th class="data">Initial Value</th>
		    </tr>
		  
		  
		    <tr>
		      <td class="data">CommandText</td>
		      <td class="data">empty string (&quot;&quot;)</td>
		    </tr>
		    <tr>
		      <td class="data">CommandTimeout</td>
		      <td class="data">30</td>
		    </tr>
		    <tr>
		      <td class="data">CommandType</td>
		      <td class="data">CommandType.Text</td>
		    </tr>
		    <tr>
		      <td class="data">Connection</td>
		      <td class="data">null</td>
		    </tr>
		  
		
	      </table>
    <br />

	      <p>You can change the value for any of these properties through a separate call to the property.</p>

	    <br />

	  <br />

	  
	    <h4>VirtuosoCommand Constructor (string)</h4>

	    <p>Initializes a new instance of the VirtuosoCommand class with the text of the query.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoCommand</div>
	      <div class="methodparam">
		<span class="mptype">string</span>
		<span class="mpparam">cmdText</span>
	      </div>
	    </td>
    </tr>
    </table>

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">cmdText:</td>
        <td>
		    The text of the query.
		  </td>
    </tr>
    </table>
	    <br />

	  <br />

	  
	    <h4>VirtuosoCommand Constructor (string, VirtuosoConnection)</h4>

	    <p>Initializes a new instance of the VirtuosoCommand class with the text of the query and
an VirtuosoConnection object.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoCommand</div>
	      <div class="methodparam">
		<span class="mptype">string</span>
		<span class="mpparam">cmdText</span>
	      </div>
	      <div class="methodparam">
		<span class="mptype">VirtuosoConnection</span>
		<span class="mpparam">connection</span>
	      </div>
	    </td>
    </tr>
    </table>

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">cmdText:</td>
        <td>
		    The text of the query.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">connection:</td>
        <td>
		    A VirtuosoConnection object that represents the connection to a Virtuoso database.
		  </td>
    </tr>
    </table>
	    <br />

	  <br />

	  
	    <h4>ConnectionString Property</h4>

	    <p>The Virtuoso ADO.NET Provider ConnectionString property implements the 
	    IDbConnection.ConnectionString property to get or set the string used to open a Virtuoso 
	    database connection, and includes the source database name and other parameters needed to 
	    establish the initial connection. The default value is an empty string.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      ConnectionString
	    

	    
	      <h4>Property Value</h4>
	      <p>Includes the source database name and other parameters needed to establish the 
	      initial connection. The default value is an empty string.</p>
	      <p>ConnectionString has the following syntax: Each connection string is a sequence of settings 
	      Individual settings are separated by semicolons. Each setting is a pair of name and value delimited 
	      by the equal sign. Whitespace is ignored on either side of both names and values. Names are case 
	      insensitive. The value part can be quoted by either single or double quote characters or remain 
	      unquoted at all. However if it includes a semicolon, single quote, or double quote characters, 
	      it must be enclosed in either type of quotes. To embed the same character that is used for 
	      enclosing the value the character within the value must be doubled.</p>
	      
	      <p>The following table lists the valid names for values within the ConnectionString:</p>

	      <table class="data">
		      
		        
		          <tr>
		            <th class="data">Name</th>
		            <th class="data">Default</th>
		            <th class="data">Description</th>		            
		          </tr>
		        
		        
		          <tr>
		            <td class="data">Connect Timeout orConnection Timeout</td>
		            <td class="data">15</td>
		            <td class="data">The number of seconds to wait for a connection to the server before terminating the attempt and generating an error.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Connection Lifetime</td>
		            <td class="data">0</td>
		            <td class="data">When a connection is returned to the pool, its creation time is compared with the current time, and the connection is destroyed if that time span (in seconds) exceeds the value specified by connection lifetime. Useful in clustered configurations to force load balancing between a running server and a server just brought on-line.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Charset</td>
		            <td class="data">utf-16</td>
		            <td class="data">Specifies the character set to be used by the provider when passing string values to and from the database. Must be set to utf-8 to handle Unicode strings passed in SPARQL/SPASQL queries of RDF data.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Data Source orServer orAddress orNetwork Address orHost</td>
		            <td class="data" />
		            <td class="data">The name or network address of the instance of Virtuoso server to which to connect. Can take comma delimited list of instances for connection fail over.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Encrypt</td>
		            <td class="data">false</td>
		            <td class="data">Specifies if the connection must be SSL encrypted. Currently encryption only works with an ODBC-based provider.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Enlist</td>
		            <td class="data">true</td>
		            <td class="data">When true, the pooler automatically enlists the connection in the creation thread&#39;s current transaction context.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Initial Catalog orDatabase</td>
		            <td class="data" />
		            <td class="data">The name of the database.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Max Pool Size</td>
		            <td class="data">100</td>
		            <td class="data">The maximum number of connections allowed in the pool.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Min Pool Size</td>
		            <td class="data">0</td>
		            <td class="data">The minimum number of connections allowed in the pool.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Password orPwd</td>
		            <td class="data" />
		            <td class="data">The password for the Virtuoso account logging on. </td>		            
		          </tr>
		          <tr>
		            <td class="data">Persist Security Info</td>
		            <td class="data">false</td>
		            <td class="data">When set to &#39;false&#39;, security-sensitive information, such as the password, is not returned as part of the connection if the connection is open or has ever been in an open State. Resetting the connection string resets all connection string values including the password.</td>		            
		          </tr>
		          <tr>
		            <td class="data">Pooling</td>
		            <td class="data">true</td>
		            <td class="data">	When true, the VirtuosoConnection object is drawn from the appropriate pool, or if necessary, is created and added to the appropriate pool.</td>		            
		          </tr>
		          <tr>
		            <td class="data">RoundRobin</td>
		            <td class="data">false</td>
		            <td class="data">Enables load balancing in which case the server for the connection is chosen at random from the comma delimited provided as for a Failover connection.</td>		            
		          </tr>
		          <tr>
		            <td class="data">User ID orUid</td>
		            <td class="data" />
		            <td class="data">The Virtuoso login name.</td>		            
		          </tr>		          
		        
		      
	      </table>
    <br />
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbCommand.ConnectionString</p>
	    <br />
 
      
	      <h4>Remarks</h4>
	       <p>The <strong>ConnectionString</strong> is similar to an OLE DB connection string, but 
	       is not identical. Unlike OLE DB or ADO, the connection string that is returned is the same as the 
	       user set <strong>ConnectionString</strong> minus security information if the 
	       <strong>Persist Security Info</strong> value is set to <strong>false</strong> (default). 
	       The Virtuoso ADO.NET Data Provider neither persists nor returns the password in a connection 
	       string unless you set <strong>Persist Security Info</strong> to true.</p>
	       <p>The <strong>ConnectionString</strong> property can be set only when the connection is 
	       closed. Many of the connection string values have corresponding read-only properties. When the 
	       connection string is set, all of these properties are updated, except when an error is detected; 
	       in this case, none of the properties are updated. <strong>VirtuosoConnection</strong> 
	       properties return only those settings contained in the <strong>ConnectionString</strong>.</p>
	       <p>Resetting the <strong>ConnectionString</strong> on a closed connection resets all 
	       connection string values (and related properties) including the password. For example, if you set a 
	       connection string that includes &quot;<strong>Database=Demo</strong>&quot;, and then reset the connection 
	       string to &quot;<strong>Data Source=myserver;User ID=dba;Password=dba</strong>&quot;, the Database 
	       property is no longer set to <strong>Demo</strong>.</p>	      
	       <p>The connection string is parsed immediately after being set. If errors in syntax are found 
	       when parsing, a runtime exception (e.g., <strong>ArgumentException</strong>) is generated. 
	       Other errors can be found only when an attempt is made to open the connection.</p>	       
	    <br />
	    
	  <br />
	  
	  
	    <h4>VirtuosoCommand Constructor (string, VirtuosoConnection, VirtuosoTransaction)</h4>

	    <p>Initializes a new instance of the VirtuosoCommand class with the text of the query,
an VirtuosoConnection object, and the VirtuosoTransaction.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoCommand</div>
	      <div class="methodparam">
		<span class="mptype">string</span>
		<span class="mpparam">cmdText</span>
	      </div>
	      <div class="methodparam">
		<span class="mptype">VirtuosoConnection</span>
		<span class="mpparam">connection</span>
	      </div>
	      <div class="methodparam">
		<span class="mptype">VirtuosoTransaction</span>
		<span class="mpparam">transaction</span>
	      </div>
	    </td>
    </tr>
    </table>

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">cmdText:</td>
        <td>
		    The text of the query.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">connection:</td>
        <td>
		    A VirtuosoConnection object that represents the connection to a Virtuoso database.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">transaction:</td>
        <td>
		    The VirtuosoTransaction in which the VirtuosoCommand executes.
		  </td>
    </tr>
    </table>
	    <br />

	  <br />

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>CommandText Property</h4>

	    <p>Gets or sets the SQL statement or stored procedure to execute against the Virtuoso database.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      CommandText
	    

	    
	      <h4>Property Value</h4>
	      <p>The SQL statement or stored procedure to execute. The default value is an empty string (&quot;&quot;).</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbCommand.CommandText</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When the CommandType property is set to StoredProcedure, the CommandText property
should be set using standard ODBC stored procedure escape sequences. Setting the CommandText to the name
of the stored procedure does not function as it does for some other .NET data providers.</p>

	      <p>The Virtuoso .NET Data Provider does not support named parameters for passing parameters
to a SQL statement or a stored procedure called by an OleDbCommand when CommandType is set to Text. In this case,
the question mark (?) placeholder must be used. For example:</p>

	      
		<div>
      <pre class="programlisting">SELECT * FROM Customers WHERE CustomerID = ?</pre>
    </div>
	      

	      <p>As a result, the order in which VirtuosoParameter objects are added to the
VirtuosoParameterCollection must directly correspond to the position of the question mark placeholder
for the parameter.</p>

	    <br />

	  <br />

	  
	    <h4>CommandTimeout Property</h4>

	    <p>Gets or sets the wait time before terminating an attempt to execute a command and generating
an error.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      CommandTimeout
	    

	    
	      <h4>Property Value</h4>
	      <p>The time (in seconds) to wait for the command to execute. The default is 30 seconds.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbCommand.CommandTimeout</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>A value of zero (0) specifies no limit to the wait time, rather than no wait time, and
therefore should be avoided.</p>
	    <br />

	  <br />

	  
	    <h4>CommandType Property</h4>

	    <p>Gets or sets a value indicating how the CommandText property is interpreted.</p>

	    
	      public
	      <span class="computeroutput">CommandType</span>
	      CommandType
	    

	    
	      <h4>Property Value</h4>
	      <p>One of the System.Data.CommandType values. The default is Text.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbCommand.CommandType</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When the CommandType property is set to StoredProcedure, you should set the CommandText
property to the full ODBC call syntax. The command then executes this stored procedure when you call one of
the Execute methods (for example, ExecuteReader or ExecuteNonQuery).</p>

	      <p>The Connection, CommandType and CommandText properties cannot be set if the current
connection is performing an execute or fetch operation.</p>

	      <p>The Virtuoso .NET Data Provider does not support passing named parameters to an SQL
statement or to a stored procedure called by a VirtuosoCommand. In either of these cases, use the question
mark (?) placeholder. For example:</p>

	      
		<div>
      <pre class="programlisting">SELECT * FROM Customers WHERE CustomerID = ?</pre>
    </div>
	      

	      <p>The order in which VirtuosoParameter objects are added to the VirtuosoParameterCollection
must directly correspond to the position of the question mark placeholder for the parameter.</p>

	    <br />

	  <br />

	  
	    <h4>Connection Property</h4>

	    <p>Gets or sets the VirtuosoConnection used by this instance of the VirtuosoCommand.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoConnection</span>
	      Connection
	    

	    
	      <h4>Property Value</h4>
	      <p>The connection to a Virtuoso database. The default is a null value.</p>
	    <br />

	  <br />

	  
	    <h4>Parameters Property</h4>

	    <p>Gets the VirtuosoParameterCollection.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoParameterCollection</span>
	      Connection
	    

	    
	      <h4>Property Value</h4>
	      <p>The parameters of the SQL statement or stored procedure. The default is an empty collection.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>When CommandType is set to Text, the Virtuoso .NET Data Provider does not support passing named
parameters to an SQL statement or to a stored procedure called by an VirtuosoCommand. In either of these cases, use
the question mark (?) placeholder. For example:</p>

	      
		<div>
      <pre class="programlisting">SELECT * FROM Customers WHERE CustomerID = ?</pre>
    </div>
	      

	      <p>The order in which VirtuosoParameter objects are added to the VirtuosoParameterCollection must
directly correspond to the position of the question mark placeholder for the parameter in the command text.</p>

	      <div class="note">
      <div class="notetitle">Note:</div>
		If the parameters in the collection do not match the requirements of the query to be executed,
		an error may result.
	      </div>

	    <br />

	  <br />

	  
	    <h4>Transaction Property</h4>

	    <p>Gets or sets the VirtuosoTransaction within which the VirtuosoCommand executes.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoTransaction</span>
	      Transaction
	    

	    
	      <h4>Property Value</h4>
	      <p>A VirtuosoTransaction. The default is a null value.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>You cannot set the Transaction property if it is already set to a specific value,
and the command is in the process of executing. If you set the transaction property to an
VirtuosoTransaction object that is not connected to the same VirtuosoConnection as the VirtuosoCommand object,
an exception will be thrown the next time you attempt to execute a statement.</p>
	    <br />

	  <br />

	  
	    <h4>UpdatedRowSource Property</h4>

	    <p>Gets or sets how command results are applied to the DataRow when used by the Update method
of the DbDataAdapter.</p>

	    
	      public
	      <span class="computeroutput">UpdateRowSource</span>
	      UpdatedRowSource
	    

	    
	      <h4>Property Value</h4>
	      <p>One of the System.Data.UpdateRowSource values.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbCommand.UpdatedRowSource</p>
	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>Cancel Method</h4>

	    <p>Attempts to cancel the execution of an VirtuosoCommand.</p>

	    
	      public
	      
	      Cancel
	      
	    
	  <br />

	  
	    <h4>Implements</h4>
	    <p>IDbCommand.Cancel</p>
	  <br />

	  
	    <h4>Remarks</h4>
	    <p>If there is nothing to cancel, nothing happens. However, if there is a command in process,
and the attempt to cancel fails, no exception is generated.</p>
	  <br />

	  
	    <h4>CreateParameter Method</h4>

	    <p>Creates a new instance of a VirtuosoParameter object.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoParameter</span>
	      CreateParameter
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>A VirtuosoParameter object.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The CreateParameter method is a strongly-typed version of IDbCommand.CreateParameter.</p>
	    <br />

	  <br />

	  
	    <h4>ExecuteNonQuery Method</h4>

	    <p>Executes an SQL statement against the Connection and returns the number of rows affected.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      ExecuteNonQuery
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>For UPDATE, INSERT, and DELETE statements, the return value is the number of rows
affected by the command. For all other types of statements, the return value is -1.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbCommand.ExecuteNonQuery</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>You can use ExecuteNonQuery to perform catalog operations (for example, querying the structure
of a database or creating database objects such as tables); or to change the data in a database, without using a
DataSet, by executing UPDATE, INSERT, or DELETE statements.</p>

	      <p>Although ExecuteNonQuery does not return any rows, any output parameters or return values mapped
to parameters are populated with data.</p>
	    <br />

	  <br />

	  
	    <h4>ExecuteReader Method</h4>

	    <p>Sends the CommandText to the Connection and builds a VirtuosoDataReader.</p>

	    
	      <h4>ExecuteReader Method ()</h4>

	      <p>Sends the CommandText to the Connection and builds a VirtuosoDataReader.</p>

	      
		public
		<span class="computeroutput">VirtuosoDataReader</span>
		ExecuteReader
		
	      

	      
		<h4>Return Value</h4>
		<p>A VirtuosoDataReader object.</p>
	      <br />

	    <br />

	    
	      <h4>ExecuteReader Method (CommandBehavior)</h4>

	      <p>Sends the CommandText to the Connection and builds a VirtuosoDataReader using
one of the CommandBehavior values.</p>

	      
		public
		<span class="computeroutput">VirtuosoDataReader</span>
		ExecuteReader
		
		  <span class="mptype">CommandBehavior</span>
		  <span class="mpparam">behavior</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">behavior:</td>
        <td>
		      One of the System.Data.CommandBehavior values.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>A VirtuosoDataReader object.</p>
	      <br />

	    <br />

	  <br />

	  
	    <h4>ExecuteScalar Method</h4>

	    <p>Executes the query, and returns the first column of the first row in the resultset
returned by the query. Extra columns or rows are ignored.</p>

	    
	      public
	      <span class="computeroutput">object</span>
	      ExecuteScalar
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>The first column of the first row in the resultset.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbCommand.ExecuteScalar</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>Use the ExecuteScalar method to retrieve a single value (for example, an aggregate value)
from a database. This requires less code than using the ExecuteReader method, and then performing the operations
necessary to generate the single value using the data returned by a VirtuosoDataReader.</p>

	      <p>A typical ExecuteScalar query can be formatted as in the following C# example:</p>

	      
		<div>
      <pre class="programlisting">
command.CommandText = &quot;select count(*) from foobar&quot;;
int count = (int) command.ExecuteScalar();
</pre>
    </div>
	      

	    <br />

	  <br />

	  
	    <h4>ICloneable.Clone Method</h4>

	    <p>This member supports the .NET Framework infrastructure and is not intended to be used directly
from your code.</p>

	    
	      <span class="computeroutput">object</span>
	      ICloneable.Clone
	      
	    

	  <br />

	  
	    <h4>IDbCommand.CreateParameter Method</h4>

	    <p>This member supports the .NET Framework infrastructure and is not intended to be used directly
from your code.</p>

	    
	      <span class="computeroutput">IDbDataParameter</span>
	      IDbCommand.CreateParameter
	      
	    

	  <br />

	  
	    <h4>IDbCommand.ExecuteReader Method</h4>

	    <p>This member supports the .NET Framework infrastructure and is not intended to be used directly
from your code.</p>

	    
	      <h4>IDbCommand.ExecuteReader Method ()</h4>

	      <p>This member supports the .NET Framework infrastructure and is not intended to be used directly
from your code.</p>

	      
		<span class="computeroutput">IDataReader</span>
		IDbCommand.ExecuteReader
		
	      

	    <br />

	    
	      <h4>IDbCommand.ExecuteReader Method (CommandBehavior)</h4>

	      <p>This member supports the .NET Framework infrastructure and is not intended to be used directly
from your code.</p>

	      
		<span class="computeroutput">IDataReader</span>
		IDbCommand.ExecuteReader
		
		  <span class="mptype">CommandBehavior</span>
		  <span class="mpparam">behavior</span>
		
	      

	    <br />

	  <br />

	  
	    <h4>Prepare Method</h4>

	    <p>Creates a prepared (or compiled) version of the command at the Virtuoso server.</p>

	    
	      public
	      
	      Prepare
	      
	    

	    
	      <h4>Implements</h4>
	      <p>IDbCommand.Prepare</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtcmdbuildr" />
    <h4>7.1.3.5. VirtuosoCommandBuilder Class</h4>

	<p>Provides a means of automatically generating single-table commands used to reconcile changes
made to a DataSet with the associated Virtuoso database. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.MarshalByRefObject</li>
      <li>      System.ComponentModel.Component</li>
      <li>         VirtuosoCommandBuilder</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoCommandBuilder</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">Component</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>

	  <p>The VirtuosoDataAdapter does not automatically generate the SQL statements required to reconcile
changes made to a DataSet associated with the data source. However, you can create a VirtuosoCommandBuilder object
that generates SQL statements for single-table updates if you set the SelectCommand property of the VirtuosoDataAdapter.
Then, the VirtuosoCommandBuilder generates any additional SQL statements that you do not set.</p>

	  <p>The relationship between a VirtuosoDataAdapter and its corresponding VirtuosoCommandBuilder is always
one-to-one. To create this correspondence, you set the DataAdapter property of the VirtuosoCommandBuilder object.
This causes the VirtuosoCommandBuilder to register itself as a listener for RowUpdating events on the specified
VirtuosoDataAdapter object.</p>

	  <p>To generate INSERT, UPDATE, or DELETE statements, the VirtuosoCommandBuilder uses the SelectCommand
property to retrieve a required set of metadata. If you change the value of SelectCommand after the metadata
has been retrieved (for example, after the first update), you then should call the RefreshSchema method to update
the  metadata.</p>

	  <p>The VirtuosoCommandBuilder also uses the Connection, CommandTimeout, and Transaction properties
referenced by the SelectCommand. The user should call RefreshSchema if any of these properties are modified, or
if the value of the SelectCommand property itself is changed. Otherwise the InsertCommand, UpdateCommand, and
DeleteCommand properties retain their previous values.</p>

	  <p>If you call Dispose, the VirtuosoCommandBuilder is disassociated from the VirtuosoDataAdapter,
and the generated commands are no longer used.</p>

	<br />

	
	  <h4>VirtuosoCommandBuilder Constructor</h4>

	  
	    <h4>VirtuosoCommandBuilder Constructor ()</h4>

	    <p>Initializes a new instance of the VirtuosoCommandBuilder class.</p>

	    
	      public
	      VirtuosoCommandBuilder
	      
	    

	  <br />

	  
	    <h4>VirtuosoCommandBuilder Constructor (VirtuosoDataAdapter)</h4>

	    <p>Initializes a new instance of the VirtuosoCommandBuilder class with the associated
VirtuosoDataAdapter object.</p>

	    
	      public
	      VirtuosoCommandBuilder
	      
		<span class="mptype">VirtuosoDataAdapter</span>
		<span class="mpparam">adapter</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">adapter:</td>
        <td>
		    A VirtuosoDataAdapter object to associate with this VirtuosoCommandBuilder.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The VirtuosoCommandBuilder registers itself as a listener for RowUpdating events that are
generated by the VirtuosoDataAdapter specified in this property.</p>
	    <br />

	  <br />

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>DataAdapter Property</h4>

	    <p>Gets or sets a VirtuosoDataAdapter object for which SQL statements are automatically generated.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoDataAdapter</span>
	      DataAdapter
	    

	    
	      <h4>Property Value</h4>
	      <p>A VirtuosoDataAdapter object.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The VirtuosoCommandBuilder registers itself as a listener for RowUpdating events that are generated
by the VirtuosoDataAdapter specified in this property.</p>
	    <br />

	  <br />

	  
	    <h4>QuotePrefix Property</h4>

	    <p>Gets or sets the beginning character or characters to use when working with database objects
(for example, tables or columns) whose names contain characters such as spaces.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      QuotePrefix
	    

	    
	      <h4>Property Value</h4>
	      <p>The beginning character or characters to use. The default is an empty string.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Database objects in Virtuoso servers can contain any valid characters, including spaces, commas,
and semicolons. To accommodate this capability, use the QuotePrefix and QuoteSuffix properties to specify delimiters
such as a left bracket and a right bracket to encapsulate the object name.</p>
	    <br />

	  <br />

	  
	    <h4>QuoteSuffix Property</h4>

	    <p>Gets or sets the ending character or characters to use when working with database objects
(for example, tables or columns) whose names contain characters such as spaces.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      QuotePrefix
	    

	    
	      <h4>Property Value</h4>
	      <p>The ending character or characters to use. The default is an empty string.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Database objects in Virtuoso servers can contain any valid characters, including spaces, commas,
and semicolons. To accommodate this capability, use the QuotePrefix and QuoteSuffix properties to specify delimiters
such as a left bracket and a right bracket to encapsulate the object name.</p>
	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>DeriveParameters Method</h4>

	    <p>Retrieves parameter information from the stored procedure specified in the VirtuosoCommand and
populates the Parameters collection of the specified VirtuosoCommand object.</p>

	    
	      public
	      static
	      
	      DeriveParameters
	      
		<span class="mptype">VirtuosoCommand</span>
		<span class="mpparam">command</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">command:</td>
        <td>
		    The VirtuosoCommand referencing the stored procedure from which the parameter information is to be
		    derived. The derived parameters are added to the Parameters collection of the VirtuosoCommand.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>DeriveParameters overwrites any existing parameter information for
the VirtuosoCommand. DeriveParameters requires an extra call to the data server to obtain
the information. If the parameter information is known in advance, it is more efficient to populate the parameters
collection by setting the information explicitly.</p>

	      <p>For more information, see &quot;Using Stored Procedures with a Command&quot; in the
Microsoft® .NET Framework SDK documentation.</p>

	    <br />

	  <br />

	  
	    <h4>Dispose Method</h4>

	    <p>Releases the unmanaged and, optionally, the managed resources used by the VirtuosoCommandBuilder.</p>

	    
	      protected
	      override
	      
	      Dispose
	      
		<span class="mptype">bool</span>
		<span class="mpparam">disposing</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">disposing:</td>
        <td>
		    <span class="computeroutput">true</span> to release both managed and unmanaged resources;
<span class="computeroutput">false</span> to release only unmanaged resources.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>This method is called by the public Dispose method and the Finalize method. Dispose() invokes
the protected Dispose(Boolean) method with the disposing parameter set to true. Finalize invokes Dispose with
disposing set to false.</p>

	      <p>When the disposing parameter is true, the method releases all resources held by any managed objects
that this VirtuosoCommand references. It does this by invoking the Dispose() method of each referenced object.</p>

	      <p>For more information about Dispose and Finalize, see &quot;Cleaning Up Unmanaged Resources,&quot; and &quot;Overriding the Finalize Method,&quot; in the .NET Framework SDK documentation.</p>

	    <br />

	  <br />

	  
	    <h4>GetDeleteCommand Method</h4>

	    <p>Gets the automatically generated VirtuosoCommand object required to perform deletions on
the Virtuoso database.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoCommand</span>
	      GetDeleteCommand
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>The automatically generated VirtuosoCommand object required to perform deletions.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>You can use the GetDeleteCommand method for informational or troubleshooting purposes because
it returns the VirtuosoCommand object to be executed.</p>

	      <p>You can also use GetDeleteCommand as the basis of a modified command. For example, you might call
GetDeleteCommand and modify the CommandTimeout value, and then explicitly set that on the VirtuosoDataAdapter.</p>

	      <p>After the SQL statement is first generated, you must explicitly call RefreshSchema if you change
the statement in any way. Otherwise, the GetDeleteCommand still will be using information from the previous statement,
which might not be correct. The SQL statements are first generated when the application calls either Update or
GetDeleteCommand.</p>

	    <br />

	  <br />

	  
	    <h4>GetInsertCommand Method</h4>

	    <p>Gets the automatically generated VirtuosoCommand object required to perform insertions on
the Virtuoso database.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoCommand</span>
	      GetInsertCommand
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>The automatically generated VirtuosoCommand object required to perform insertions.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>You can use the GetInsertCommand method for informational or troubleshooting purposes because
it returns the VirtuosoCommand object to be executed.</p>

	      <p>You can also use GetInsertCommand as the basis of a modified command. For example, you might call
GetInsertCommand and modify the CommandTimeout value, and then explicitly set that on the VirtuosoDataAdapter.</p>

	      <p>After the SQL statement is first generated, you must explicitly call RefreshSchema if you change
the statement in any way. Otherwise, the GetInsertCommand still will be using information from the previous statement,
which might not be correct. The SQL statements are first generated when the application calls either Update or
GetInsertCommand.</p>

	    <br />

	  <br />

	  
	    <h4>GetUpdateCommand Method</h4>

	    <p>Gets the automatically generated VirtuosoCommand object required to perform updates on
the Virtuoso database.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoCommand</span>
	      GetUpdateCommand
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>The automatically generated VirtuosoCommand object required to perform updates.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>You can use the GetUpdateCommand method for informational or troubleshooting purposes because
it returns the VirtuosoCommand object to be executed.</p>

	      <p>You can also use GetUpdateCommand as the basis of a modified command. For example, you might call
GetUpdateCommand and modify the CommandTimeout value, and then explicitly set that on the VirtuosoDataAdapter.</p>

	      <p>After the SQL statement is first generated, you must explicitly call RefreshSchema if you change
the statement in any way. Otherwise, the GetUpdateCommand still will be using information from the previous statement,
which might not be correct. The SQL statements are first generated when the application calls either Update or
GetUpdateCommand.</p>

	    <br />

	  <br />

	  
	    <h4>RefreshSchema Method</h4>

	    <p>Refreshes the database schema information used to generate INSERT, UPDATE, or DELETE statements.</p>

	    
	      public
	      
	      RefreshSchema
	      
	    

	    
	      <h4>Remarks</h4>
	      <p>You should call RefreshSchema whenever the SelectCommand value of the VirtuosoDataAdapter changes.</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtconnclass" />
    <h4>7.1.3.6. VirtuosoConnection Class</h4>

	<p>Represents an open connection to a Virtuoso database. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.MarshalByRefObject</li>
      <li>      System.ComponentModel.Component</li>
      <li>         VirtuosoConnection</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoConnection</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">Component</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">ICloneable</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDbConnection</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>

	  <p>A VirtuosoConnection object represents a unique session to a Virtuoso database server.</p>

	  <p>The VirtuosoConnection object uses native resources such as network connection handles.
You should always explicitly close any open VirtuosoConnection objects by calling Close or Dispose before
the VirtuosoConnection object goes out of scope. Not doing so leaves the freeing of these native resources
to garbage collection, which may not free them immediately. This, in turn, may eventually cause the
underlying driver to run out of resources or reach a maximum limit, resulting in sporadic failures.
For example, you might encounter Maximum Connections-related errors while a number of connections are
waiting to be deleted by the garbage collector. Explicitly closing the connections by calling Close or
Dispose allows a more efficient use of native resources, enhancing scalability and improving overall
application performance.</p>

	<br />

	
	  <h4>VirtuosoConnection Constructor</h4>

	  <p>Initializes a new instance of the VirtuosoConnection class.</p>

	  
	    <h4>VirtuosoConnection Constructor ()</h4>

	    <p>Initializes a new instance of the VirtuosoConnection class.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoConnection</div>
	      <div class="void" />
	    </td>
    </tr>
    </table>

	    
	      <h4>Remarks</h4>

	      <p>When a new instance of VirtuosoConnection is created, the read/write properties are set
to the following initial values unless they are specifically set using their associated keywords in the
ConnectionString property.</p>

	      <table class="data">
		
		  
		    <tr>
		      <th class="data">Properties</th>
		      <th class="data">Initial Value</th>
		    </tr>
		  
		  
		    <tr>
		      <td class="data">ConnectionString</td>
		      <td class="data">empty string (&quot;&quot;)</td>
		    </tr>
		    <tr>
		      <td class="data">ConnectionTimeout</td>
		      <td class="data">15</td>
		    </tr>
		    <tr>
		      <td class="data">Database</td>
		      <td class="data">empty string (&quot;&quot;)</td>
		    </tr>
		  
		
	      </table>
    <br />

	      <p>You can change the value for these properties only by using the ConnectionString property</p>

	    <br />

	  <br />

	  
	    <h4>VirtuosoConnection Constructor (string)</h4>

	    <p>Initializes a new instance of the VirtuosoConnection class with the specified connection string.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoConnection</div>
	      <div class="methodparam">
		<span class="mptype">string</span>
		<span class="mpparam">connectionString</span>
	      </div>
	    </td>
    </tr>
    </table>

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">connectionString:</td>
        <td>
		    The connection used to open the Virtuoso database.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When a new instance of VirtuosoConnection is created, the read/write properties are set
to the following initial values unless they are specifically set using their associated keywords in the
ConnectionString property.</p>

	      <table class="data">
		
		  
		    <tr>
		      <th class="data">Properties</th>
		      <th class="data">Initial Value</th>
		    </tr>
		  
		  
		    <tr>
		      <td class="data">ConnectionString</td>
		      <td class="data">connectionString</td>
		    </tr>
		    <tr>
		      <td class="data">ConnectionTimeout</td>
		      <td class="data">15</td>
		    </tr>
		    <tr>
		      <td class="data">Database</td>
		      <td class="data">empty string (&quot;&quot;)</td>
		    </tr>
		  
		
	      </table>
    <br />

	      <p>You can change the value for these properties only by using the ConnectionString property</p>
	    <br />

	  <br />

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>ConnectionString Property</h4>

	    <p>Gets or sets the string used to open a Virtuoso database.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      ConnectionString
	    

	    
	      <h4>Property Value</h4>
	      <p>The connection string that includes the source database name, and other parameters
needed to establish the initial connection. The default value is an empty string.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbConnection.ConnectionString</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>The ConnectionString is similar to an OLE DB connection string, but is not identical.
Unlike OLE DB or ADO, the connection string that is returned is the same as the user-set ConnectionString
minus security information if the Persist Security Info value is set to
<span class="computeroutput">false</span> (default). The Virtuoso .NET Data Provider does not persist or return the
password in a connection string unless you set Persist Security Info to true.</p>

	      <p>The ConnectionString property can be set only when the connection is closed. Many of
the connection string values have corresponding read-only properties. When the connection string is set,
all of these properties are updated, except when an error is detected. In this case, none of the properties
are updated. VirtuosoConnection properties return only those settings contained in the ConnectionString.</p>

	      <p>Resetting the ConnectionString on a closed connection resets all connection string values
(and related properties) including the password. For example, if you set a connection string that includes
&quot;Database=Demo&quot;, and then reset the connection string to &quot;Data Source=myserver;User ID=dba;Password=dba&quot;,
the Database property is no longer set to northwind.</p>

	      <p>The connection string is parsed immediately after being set. If errors in syntax are found
when parsing, a runtime exception, such as ArgumentException, is generated. Other errors can be found only when
an attempt is made to Open the connection.</p>

	      <p>Connection string has the following syntax. Each connection string is a sequence of settings
Individual settings are separated by semicolons. Each setting is a pair of name and value delimited by the equal
sign. Whitespace is ignored on either side of both names and values. Names are case insensitive. The value part
can be quoted by either single or double quote characters or remain unquoted at all. However if it includes a
semicolon, single quote, or double quote characters, it must be enclosed in either type of quotes. To embed the
same character that is used for enclosing the value the character within the value must be doubled.</p>

	      <p>The following table lists the valid names for values within the ConnectionString.</p>

	      <table class="data">
		
		  
		    <tr>
 		      <th class="data">Name</th>
		      <th class="data">Default</th>
		      <th class="data">Description</th>
		    </tr>
		  
		  
		    <tr>
 		      <td class="data">
                        Connect Timeout
			-or-
			Connection Timeout
                      </td>
		      <td class="data">15</td>
		      <td class="data">The length of time (in seconds) to wait for a connection to the server before
terminating the attempt and generating an error.</td>
		    </tr>
		    <tr>
 		      <td class="data">Connection Lifetime</td>
		      <td class="data">0</td>
		      <td class="data">When a connection is returned to the pool, its creation time is compared with
the current time, and the connection is destroyed if that time span (in seconds) exceeds the value specified
by connection lifetime. Useful in clustered configurations to force load balancing between a running server
and a server just brought on-line.</td>
		    </tr>
		    <tr>
 		      <td class="data">
                        Data Source
			-or-
			Server
			-or-
			Address
			-or-
			Network Address
		      </td>
		      <td class="data" />
		      <td class="data">The name or network address of the instance of Virtuoso server to which to connect.</td>
		    </tr>
		    <tr>
 		      <td class="data">Encrypt</td>
		      <td class="data">false</td>
		      <td class="data">Specifies if the connection must be SSL encrypted. Currently encryption only works
with an ODBC-based provider.</td>
		    </tr>
		    <tr>
 		      <td class="data">Enlist</td>
		      <td class="data">true</td>
		      <td class="data">When true, the pooler automatically enlists the connection in the creation thread&#39;s
current transaction context.</td>
		    </tr>
		    <tr>
 		      <td class="data">
                        Initial Catalog
                        -or-
                        Database
                      </td>
		      <td class="data" />
		      <td class="data">The name of the database.</td>
		    </tr>
		    <tr>
 		      <td class="data">Max Pool Size</td>
		      <td class="data">100</td>
		      <td class="data">The maximum number of connections allowed in the pool.</td>
		    </tr>
		    <tr>
 		      <td class="data">Min Pool Size</td>
		      <td class="data">0</td>
		      <td class="data">The minimum number of connections allowed in the pool.</td>
		    </tr>
		    <tr>
 		      <td class="data">
			Password
			-or-
			Pwd
		      </td>
		      <td class="data" />
		      <td class="data">The password for the Virtuoso account logging on.</td>
		    </tr>
		    <tr>
 		      <td class="data">Persist Security Info</td>
		      <td class="data">false</td>
		      <td class="data">When set to &#39;false&#39;, security-sensitive information, such as the password,
is not returned as part of the connection if the connection is open or has ever been in an open State.
Resetting the connection string resets all connection string values including the password</td>
		    </tr>
		    <tr>
 		      <td class="data">Pooling</td>
		      <td class="data">true</td>
		      <td class="data">When true, the VirtuosoConnection object is drawn from the appropriate pool,
or if necessary, is created and added to the appropriate pool.</td>
		    </tr>
		    <tr>
 		      <td class="data">
                        User ID
			-or-
                        Uid
                      </td>
		      <td class="data" />
		      <td class="data">The Virtuoso login name.</td>
		    </tr>
		  
		
	      </table>
    <br />

	    <br />

	  <br />

	  
	    <h4>ConnectionTimeout Property</h4>

	    <p>Gets or sets the time to wait while trying to establish a connection before terminating
the attempt and generating an error.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      ConnectionTimeout
	    

	    
	      <h4>Property Value</h4>
	      <p>The time (in seconds) to wait for a connection to open. The default value is 15 seconds.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbConnection.ConnectionTimeout</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>A value of 0 indicates no limit, and should be avoided in a ConnectionString because an attempt
to connect will wait indefinitely.</p>
	    <br />

	  <br />

	  
	    <h4>Database Property</h4>

	    <p>Gets the name of the current database or the database to be used after a connection is opened.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      Database
	    

	    
	      <h4>Property Value</h4>
	      <p>The name of the current database or the name of the database to be used once
a connection is open. The default value is an empty string.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbConnection.Database</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Initially, the Database property is set in the connection string. The Database property
can be updated by using the ChangeDatabase method.</p>
	    <br />

	  <br />

	  
	    <h4>State Property</h4>

	    <p>Gets the current state of the connection.</p>

	    
	      public
	      <span class="computeroutput">ConnectionState</span>
	      State
	    

	    
	      <h4>Property Value</h4>
	      <p>A bitwise combination of the ConnectionState values. The default is Closed.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The allowed state changes are:</p>

	      <ul>
		<li>
		  From Closed to Open, using the Open method of the connection object.
		</li>
		<li>
		  From Open to Closed, using either the Close method or the Dispose method of the connection object.
		</li>
	      </ul>

	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>BeginTransaction Method</h4>

	    <p>Begins a database transaction.</p>

	    
	      <h4>BeginTransaction Method ()</h4>

	      <p>Begins a database transaction.</p>

	      
		public
		<span class="computeroutput">VirtuosoTransaction</span>
		BeginTransaction
		
	      

	      
		<h4>Return Value</h4>
		<p>An object representing the new transaction.</p>
	      <br />

	      
		<h4>Remarks</h4>

		<p>To commit or roll back the transaction, you must explicitly use the Commit or Rollback methods.</p>

		<p>To ensure that the Virtuoso .NET Data Provider transaction management model performs correctly,
avoid using other transaction management models, such as those provided by the data source.</p>
	      <br />

	    <br />

	    
	      <h4>BeginTransaction Method (IsolationLevel)</h4>

	      <p>Begins a database transaction with the specified isolation level.</p>

	      
		public
		<span class="computeroutput">VirtuosoTransaction</span>
		BeginTransaction
		
		  <span class="mptype">IsolationLevel</span>
		  <span class="mpparam">isoLevel</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">isoLevel:</td>
        <td>
		      The isolation level under which the transaction should run.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>An object representing the new transaction.</p>
	      <br />

	      
		<h4>Remarks</h4>

		<p>To commit or roll back the transaction, you must explicitly use the Commit or Rollback methods.</p>

		<p>To ensure that the Virtuoso .NET Data Provider transaction management model performs correctly,
avoid using other transaction management models, such as those provided by the data source.</p>
	      <br />

	    <br />

	  <br />

	  
	    <h4>ChangeDatabase Method</h4>

	    <p>Changes the current database for an open VirtuosoConnection.</p>

	    
	      public
	      
	      ChangeDatabase
	      
		<span class="mptype">string</span>
		<span class="mpparam">database</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">database:</td>
        <td>
		    The name of the database to use in place of the current database.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbConnection.ChangeDatabase</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The value parameter must contain a valid database name, and cannot contain a null value,
an empty string (&quot;&quot;), or a string with only blank characters.</p>
	    <br />

	  <br />

	  
	    <h4>Close Method</h4>

	    <p>Closes the connection to the database. This is the preferred method of closing any open connection.</p>

	    
	      public
	      
	      Close
	      
	    

	    
	      <h4>Implements</h4>
	      <p>IDbConnection.Close</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>The Close method rolls back any pending transactions. It then releases the connection
to the connection pool, or closes the connection if connection pooling is disabled.</p>

	      <p>An application can call Close more than one time. No exception is generated.</p>

	    <br />

	  <br />

	  
	    <h4>CreateCommand Method</h4>

	    <p>Creates and returns a VirtuosoCommand object associated with the VirtuosoConnection.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoCommand</span>
	      CreateCommand
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>A VirtuosoCommand object.</p>
	    <br />

	  <br />

	  
	    <h4>EnlistDistributedTransaction Method</h4>

	    <p>Enlists in the specified transaction as a distributed transaction.</p>

	    
	      public
	      
	      EnlistDistributedTransaction
	      
		<span class="mptype">ITransaction</span>
		<span class="mpparam">transaction</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">transaction:</td>
        <td>
		    <p>A reference to an existing transaction in which to enlist or null to unenlist.</p>
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>You can enlist in an existing distributed transaction using the EnlistDistributedTransaction
method if auto-enlistment is disabled. Enlisting in an existing distributed transaction ensures that, if the
transaction is committed or rolled back, modifications made by the code at the data source are also committed or
 rolled back.</p>
	    <br />

	  <br />

	  
	    <h4>ICloneable.Clone Method</h4>

	    <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended
to be used directly from your code.</p>

	    
	      <span class="computeroutput">object</span>
	      ICloneable.Clone
	      
	    

	  <br />

	  
	    <h4>IDbConnection.BeginTransaction Method</h4>

	    <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended
to be used directly from your code.</p>

	    
	      <h4>IDbConnection.BeginTransaction Method ()</h4>

	      <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended
to be used directly from your code.</p>

	      
		<span class="computeroutput">IDbTransaction</span>
		IDbConnection.BeginTransaction
		
	      

	    <br />

	    
	      <h4>IDbConnection.BeginTransaction Method (IsolationLevel)</h4>

	      <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended
to be used directly from your code.</p>

	      
		<span class="computeroutput">IDbTransaction</span>
		IDbConnection.BeginTransaction
		
		  <span class="mptype">IsolationLevel</span>
		  <span class="mpparam">isoLevel</span>
		
	      

	    <br />

	  <br />

	  
	    <h4>IDbConnection.CreateCommand Method</h4>

	    <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended
to be used directly from your code.</p>

	    
	      <span class="computeroutput">IDbCommand</span>
	      IDbConnection.CreateCommand
	      
	    

	  <br />

	  
	    <h4>Open Method</h4>

	    <p>Opens a database connection with the property settings specified by the ConnectionString.</p>

	    
	      public
	      
	      Open
	      
	    

	    
	      <h4>Implements</h4>
	      <p>IDbConnection.Open</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>The VirtuosoConnection draws an open connection from the connection pool if one is available.
Otherwise, it establishes a new connection to an instance of Virtuoso server.</p>

	      <div class="note">
      <div class="notetitle">Note:</div>
		<p>If the VirtuosoConnection goes out of scope, it is not closed. Therefore, you must explicitly
close the connection by calling Close or Dispose.</p>
	      </div>

	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtdataadaclass" />
    <h4>7.1.3.7. VirtuosoDataAdapter Class</h4>

	<p>Represents a set of data commands and a connection to a data source that are used to fill the
DataSet and update the data source. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.MarshalByRefObject</li>
      <li>      System.ComponentModel.Component</li>
      <li>         System.Data.Common.DataAdapter</li>
      <li>            System.Data.Common.DbDataAdapter</li>
      <li>               VirtuosoDataAdapter</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoDataAdapter</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">DbDataAdapter</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDbDataAdapter</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Microsoft® Visual Basic®) members of this type are safe
for multithreaded operations. Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>

	  <p>The VirtuosoDataAdapter serves as a bridge between a DataSet and data source for
retrieving and saving data. The VirtuosoDataAdapter provides this bridge by using Fill to load data
from the data source into the DataSet, and using Update to send changes made in the DataSet back to
the data source.</p>

	  <p>The VirtuosoDataAdapter also includes the SelectCommand, InsertCommand, DeleteCommand,
UpdateCommand, and TableMappings properties to facilitate loading and updating of data.</p>

	<br />

	
	  <h4>VirtuosoDataAdapter Constructor</h4>

	  
	    <h4>VirtuosoDataAdapter Constructor ()</h4>

	    <p>Initializes a new instance of the VirtuosoDataAdapter class.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoDataAdapter</div>
	      <div class="void" />
	    </td>
    </tr>
    </table>

	    
	      <h4>Remarks</h4>

	      <p>When you create an instance of VirtuosoDataAdapter, the following read/write properties
are set to their default values, as shown in the table.</p>

	      <table class="data">
		
		  
		    <tr>
		      <th class="data">Properties</th>
		      <th class="data">Default Value</th>
		    </tr>
		  
		  
		    <tr>
		      <td class="data">MissingMappingAction</td>
		      <td class="data">MissingMappingAction.Passthrough</td>
		    </tr>
		    <tr>
		      <td class="data">MissingSchemaAction</td>
		      <td class="data">MissingSchemaAction.Add</td>
		    </tr>
		  
		
	      </table>
    <br />

	      <p>You can change the value of any of these properties through a separate call to the property.</p>

	    <br />

	  <br />

	  
	    <h4>VirtuosoDataAdapter Constructor (VirtuosoCommand)</h4>

	    <p>Initializes a new instance of the VirtuosoDataAdapter class with the specified VirtuosoCommand
as the SelectCommand property.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoDataAdapter</div>
	      <div class="methodparam">
		<span class="mptype">VirtuosoCommand</span>
		<span class="mpparam">selectCommand</span>
	      </div>
	    </td>
    </tr>
    </table>

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">selectCommand:</td>
        <td>
		    A VirtuosoCommand that is an SQL SELECT statement or stored procedure, and is set as the
		    SelectCommand property of the VirtuosoDataAdapter.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>This implementation of the VirtuosoDataAdapter constructor sets the SelectCommand property
to the value specified in the selectCommand parameter.</p>

	      <p>When you create an instance of VirtuosoDataAdapter, the following read/write properties
are set to their default values, as shown in the table.</p>

	      <table class="data">
		
		  
		    <tr>
		      <th class="data">Properties</th>
		      <th class="data">Default Value</th>
		    </tr>
		  
		  
		    <tr>
		      <td class="data">MissingMappingAction</td>
		      <td class="data">MissingMappingAction.Passthrough</td>
		    </tr>
		    <tr>
		      <td class="data">MissingSchemaAction</td>
		      <td class="data">MissingSchemaAction.Add</td>
		    </tr>
		  
		
	      </table>
    <br />

	      <p>You can change the value of any of these properties through a separate call to the property.</p>

	    <br />

	  <br />

	  
	    <h4>VirtuosoDataAdapter Constructor (string, VirtuosoConnection)</h4>

	    <p>Initializes a new instance of the VirtuosoDataAdapter class with an SQL SELECT statement
and a VirtuosoConnection.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoDataAdapter</div>
	      <div class="methodparam">
		<span class="mptype">string</span>
		<span class="mpparam">selectCommandText</span>
	      </div>
	      <div class="methodparam">
		<span class="mptype">VirtuosoConnection</span>
		<span class="mpparam">selectConnection</span>
	      </div>
	    </td>
    </tr>
    </table>

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">selectCommandText:</td>
        <td>
		    A string that is a SQL SELECT statement or stored procedure to be used by the SelectCommand
		    property of the VirtuosoDataAdapter.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">selectConnection:</td>
        <td>
		    A VirtuosoConnection that represents the connection.
		  </td>
    </tr>
    </table>
	    <br />

	  <br />

	  
	    <h4>VirtuosoDataAdapter Constructor (string, string)</h4>

	    <p>Initializes a new instance of the VirtuosoDataAdapter class with an SQL SELECT statement and
a connection string.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoDataAdapter</div>
	      <div class="methodparam">
		<span class="mptype">string</span>
		<span class="mpparam">selectCommandText</span>
	      </div>
	      <div class="methodparam">
		<span class="mptype">string</span>
		<span class="mpparam">selectConnectionString</span>
	      </div>
	    </td>
    </tr>
    </table>

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">selectCommandText:</td>
        <td>
		    A string that is a SQL SELECT statement or stored procedure to be used by the SelectCommand
		    property of the VirtuosoDataAdapter.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">selectConnectionString:</td>
        <td>
		    The connection string.
		  </td>
    </tr>
    </table>
	    <br />

	  <br />

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>DeleteCommand</h4>

	    <p>Gets or sets an SQL statement or stored procedure used to delete records in the data source.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoCommand</span>
	      DeleteCommand
	    

	    
	      <h4>Property Value</h4>
	      <p>A VirtuosoCommand used during an update operation to delete records in the database
that correspond to deleted rows in the DataSet.</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When DeleteCommand is assigned to a previously created VirtuosoCommand, the VirtuosoCommand
is not cloned. The DeleteCommand maintains a reference to the previously created VirtuosoCommand object.</p>

	    <br />

	  <br />

	  
	    <h4>InsertCommand</h4>

	    <p>Gets or sets an SQL statement or stored procedure used to insert new records in the data source.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoCommand</span>
	      InsertCommand
	    

	    
	      <h4>Property Value</h4>
	      <p>A VirtuosoCommand used during an update operation to insert records in the database
that correspond to new rows in the DataSet.</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When InsertCommand is assigned to a previously created VirtuosoCommand, the VirtuosoCommand
is not cloned. The InsertCommand maintains a reference to the previously created VirtuosoCommand object.</p>

	    <br />

	  <br />

	  
	    <h4>SelectCommand</h4>

	    <p>Gets or sets an SQL statement or stored procedure used to select records in the data source.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoCommand</span>
	      SelectCommand
	    

	    
	      <h4>Property Value</h4>
	      <p>A VirtuosoCommand used during Fill to select records from the database for placement in the DataSet.</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When SelectCommand is assigned to a previously created VirtuosoCommand, the VirtuosoCommand
is not cloned. The SelectCommand maintains a reference to the previously created VirtuosoCommand object.</p>

	      <p>If the SelectCommand does not return any rows, no tables are added to the DataSet, and no
exception is raised.</p>

	    <br />

	  <br />

	  
	    <h4>UpdateCommand</h4>

	    <p>Gets or sets an SQL statement or stored procedure used to update records in the data source.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoCommand</span>
	      UpdateCommand
	    

	    
	      <h4>Property Value</h4>
	      <p>A VirtuosoCommand used during an update operation to update records in the database
that correspond to modified rows in the DataSet.</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When UpdateCommand is assigned to a previously created VirtuosoCommand, the VirtuosoCommand
is not cloned. The UpdateCommand maintains a reference to the previously created VirtuosoCommand object.</p>

	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>CreateRowUpdatedEvent</h4>

	    <p>This member overrides DbDataAdapter.CreateRowUpdatedEvent.</p>

	    
	      protected
	      override
	      <span class="computeroutput">RowUpdatedEventArgs</span>
	      CreateRowUpdatedEvent
	      
		<span class="mptype">DataRow</span>
		<span class="mpparam">dataRow</span>
	      
	      
		<span class="mptype">IDbCommand</span>
		<span class="mpparam">command</span>
	      
	      
		<span class="mptype">StatementType</span>
		<span class="mpparam">statementType</span>
	      
	      
		<span class="mptype">DataTableMapping</span>
		<span class="mpparam">tableMapping</span>
	      
	    

	  <br />

	  
	    <h4>CreateRowUpdatingEvent</h4>

	    <p>This member overrides DbDataAdapter.CreateRowUpdatingEvent.</p>

	    
	      protected
	      override
	      <span class="computeroutput">RowUpdatedEventArgs</span>
	      CreateRowUpdatingEvent
	      
		<span class="mptype">DataRow</span>
		<span class="mpparam">dataRow</span>
	      
	      
		<span class="mptype">IDbCommand</span>
		<span class="mpparam">command</span>
	      
	      
		<span class="mptype">StatementType</span>
		<span class="mpparam">statementType</span>
	      
	      
		<span class="mptype">DataTableMapping</span>
		<span class="mpparam">tableMapping</span>
	      
	    

	  <br />

	  
	    <h4>OnRowUpdated</h4>

	    <p>Raises the RowUpdated event.</p>

	    
	      protected
	      override
	      
	      OnRowUpdated
	      
		<span class="mptype">RowUpdatedEventArgs</span>
		<span class="mpparam">value</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		    <p>A System.Data.Common.RowUpdatedEventArgs object that contains the event data.</p>
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Raising an event invokes the event handler through a delegate. For an overview,
see &quot;Raising an Event&quot; in the Microsoft® .NET Framework SDK documentation.</p>
	    <br />

	  <br />

	  
	    <h4>OnRowUpdating</h4>

	    <p>Raises the RowUpdating event.</p>

	    
	      protected
	      override
	      
	      OnRowUpdating
	      
		<span class="mptype">RowUpdatingEventArgs</span>
		<span class="mpparam">value</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		    <p>A System.Data.Common.RowUpdatingEventArgs object that contains the event data.</p>
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Raising an event invokes the event handler through a delegate. For an overview,
see &quot;Raising an Event&quot; in the Microsoft® .NET Framework SDK documentation.</p>
	    <br />

	  <br />

	<br />

	
	  <h4>Events</h4>

	  
	    <h4>RowUpdated</h4>

	    <p>Occurs during an Update operation after a command is executed against the data source.</p>

	    
	      public
	      event
	      <span class="computeroutput">VirtuosoRowUpdatedEventHandler</span>
	      RowUpdated
	    

	    
	      <h4>Event Data</h4>

	      <p>The event handler receives an argument of type VirtuosoRowUpdatedEventArgs containing data
related to this event. The following VirtuosoRowUpdatedEventArgs properties provide information specific
to this event.</p>

	      <table class="data">
		
		  
		    <tr>
		      <th class="data">Property</th>
		      <th class="data">Description</th>
		    </tr>
		  
		  
		    <tr>
		      <td class="data">Command</td>
		      <td class="data">Gets the VirtuosoCommand executed when Update is called.</td>
		    </tr>
		    <tr>
		      <td class="data">Errors (inherited from RowUpdatedEventArgs)</td>
		      <td class="data">Gets any errors generated by the .NET data provider when the Command was executed.</td>
		    </tr>
		    <tr>
		      <td class="data">RecordsAffected (inherited from RowUpdatedEventArgs)</td>
		      <td class="data">Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.</td>
		    </tr>
		    <tr>
		      <td class="data">Row (inherited from RowUpdatedEventArgs)</td>
		      <td class="data">Gets the DataRow sent through an Update.</td>
		    </tr>
		    <tr>
		      <td class="data">StatementType (inherited from RowUpdatedEventArgs)</td>
		      <td class="data">Gets the type of SQL statement executed.</td>
		    </tr>
		    <tr>
		      <td class="data">Status (inherited from RowUpdatedEventArgs)</td>
		      <td class="data">Gets the UpdateStatus of the Command.</td>
		    </tr>
		    <tr>
		      <td class="data">TableMapping (inherited from RowUpdatedEventArgs)</td>
		      <td class="data">Gets the DataTableMapping sent through an Update.</td>
		    </tr>
		  
		
	      </table>
    <br />

	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When using the Update method, there are two events that occur per data row updated.
The order of execution is as follows:</p>

	      <ol>
      <li>
		  The values in the DataRow are moved to the parameter values.
		</li>
      <li>
		  The OnRowUpdating event is raised.
		</li>
      <li>
		  The command executes.
		</li>
      <li>
		  If the UpdateRowSource enumeration is set to FirstReturnedRecord, the first returned result
		  is placed in the DataRow.
		</li>
      <li>
		  If there are output parameters, they are placed in the DataRow.
		</li>
      <li>
		  The OnRowUpdated event is raised.
		</li>
      <li>
		  AcceptChanges is called.
		</li>
    </ol>

	    <br />

	  <br />

	  
	    <h4>RowUpdating</h4>

	    <p>Occurs during an Update operation before a command is executed against the data source.</p>

	    
	      public
	      event
	      <span class="computeroutput">VirtuosoRowUpdatingEventHandler</span>
	      RowUpdating
	    

	    
	      <h4>Event Data</h4>

	      <p>The event handler receives an argument of type VirtuosoRowUpdatingEventArgs containing data
related to this event. The following VirtuosoRowUpdatingEventArgs properties provide information specific to this
event.</p>

	      <table class="data">
		
		  
		    <tr>
		      <th class="data">Property</th>
		      <th class="data">Description</th>
		    </tr>
		  
		  
		    <tr>
		      <td class="data">Command</td>
		      <td class="data">Gets or sets the VirtuosoCommand to execute when Update is called.</td>
		    </tr>
		    <tr>
		      <td class="data">Errors (inherited from RowUpdatingEventArgs)</td>
		      <td class="data">Gets any errors generated by the .NET data provider when the Command executes.</td>
		    </tr>
		    <tr>
		      <td class="data">Row (inherited from RowUpdatingEventArgs)</td>
		      <td class="data">Gets the DataRow to send through an Update.</td>
		    </tr>
		    <tr>
		      <td class="data">StatementType (inherited from RowUpdatingEventArgs)</td>
		      <td class="data">Gets the type of SQL statement to execute.</td>
		    </tr>
		    <tr>
		      <td class="data">Status (inherited from RowUpdatingEventArgs)</td>
		      <td class="data">Gets the UpdateStatus of the Command.</td>
		    </tr>
		    <tr>
		      <td class="data">TableMapping (inherited from RowUpdatingEventArgs)</td>
		      <td class="data">Gets the DataTableMapping to send through the Update.</td>
		    </tr>
		  
		
	      </table>
    <br />

	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When using the Update method, there are two events that occur per data row updated.
The order of execution is as follows:</p>

	      <ol>
      <li>
		  The values in the DataRow are moved to the parameter values.
		</li>
      <li>
		  The OnRowUpdating event is raised.
		</li>
      <li>
		  The command executes.
		</li>
      <li>
		  If the UpdateRowSource enumeration is set to FirstReturnedRecord, the first returned result
		  is placed in the DataRow.
		</li>
      <li>
		  If there are output parameters, they are placed in the DataRow.
		</li>
      <li>
		  The OnRowUpdated event is raised.
		</li>
      <li>
		  AcceptChanges is called.
		</li>
    </ol>

	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtdatareadrclass" />
    <h4>7.1.3.8. VirtuosoDataReader Class</h4>

	<p>Provides a means of reading a forward-only stream of rows from a Virtuoso database. This class cannot
be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.MarshalByRefObject</li>
      <li>      VirtuosoDataReader</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoDataReader</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">MarshalByRefObject</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDataReader</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDataRecord</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDisposable</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IEnumerable</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>

	  <p>To create a VirtuosoDataReader, you must call the ExecuteReader method of the VirtuosoCommand object,
rather than directly using a constructor.</p>

	  <p>Changes made to a resultset by another process or thread while data is being read may be visible to
the user of the VirtuosoDataReader. However, the precise behavior is both driver and timing dependent.</p>

	  <p>IsClosed and RecordsAffected are the only properties that you can call after the VirtuosoDataReader
is closed. In some cases, you must call Close before you can call RecordsAffected.</p>

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>Depth Property</h4>

	    <p>Gets a value indicating the depth of nesting for the current row.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      Depth
	    

	    
	      <h4>Property Value</h4>
	      <p>The depth of nesting for the current row.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataReader.Depth</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The outermost table has a depth of zero. The Virtuoso .NET Data Provider does not support
nesting and always returns zero.</p>
	    <br />

	  <br />

	  
	    <h4>FieldCount Property</h4>

	    <p>Gets the number of columns in the current row.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      FieldCount
	    

	    
	      <h4>Property Value</h4>
	      <p>When not positioned in a valid record set, 0; otherwise the number of columns in the current record.
The default is -1.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.FieldCount</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>After executing a query that does not return rows, FieldCount returns 0.</p>
	    <br />

	  <br />

	  
	    <h4>IsClosed Property</h4>

	    <p>Gets a value indicating whether the data reader is closed.</p>

	    
	      public
	      <span class="computeroutput">bool</span>
	      IsClosed
	    

	    
	      <h4>Property Value</h4>
	      <p>
      <span class="computeroutput">true</span> if the VirtuosoDataReader is closed; otherwise,
<span class="computeroutput">false</span>.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataReader.IsClosed</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>IsClosed and RecordsAffected are the only properties that you can call after the
VirtuosoDataReader is closed.</p>
	    <br />

	  <br />

	  
	    <h4>Item Property</h4>

	    
	      <h4>Item Property (int)</h4>

	      <p>Gets the value of the specified column in its native format given the column ordinal.</p>

	      
		public
		<span class="computeroutput">object</span>
		this[int i]
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		      <p>The zero-based column ordinal.</p>
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Property Value</h4>
		<p>The value of the specified column in its native format.</p>
	      <br />

	      
		<h4>Implements</h4>
		<p>IDataRecord.Item</p>
	      <br />

	    <br />

	    
	      <h4>Item Property (string)</h4>

	      <p>Gets the value of the specified column in its native format given the column name.</p>

	      
		public
		<span class="computeroutput">object</span>
		this[string name]
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">name:</td>
        <td>
		      <p>The column name.</p>
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Property Value</h4>
		<p>The value of the specified column in its native format.</p>
	      <br />

	      
		<h4>Implements</h4>
		<p>IDataRecord.Item</p>
	      <br />

	    <br />

	  <br />

	  
	    <h4>RecordsAffected Property</h4>

	    <p>Gets the number of rows changed, inserted, or deleted by execution of the SQL statement.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      RecordsAffected
	    

	    
	      <h4>Property Value</h4>
	      <p>The number of rows changed, inserted, or deleted; 0 if no rows were affected or the statement
failed; and -1 for SELECT statements.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataReader.RecordsAffected</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>IsClosed and RecordsAffected are the only properties that you can call after the
VirtuosoDataReader is closed.</p>
	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>Close Method</h4>

	    <p>Closes the VirtuosoDataReader object.</p>

	    
	      public
	      
	      Close
	      
	    

	    
	      <h4>Implements</h4>
	      <p>IDataReader.Close</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>You must explicitly call the Close method when you are through using the VirtuosoDataReader
to use the associated VirtuosoConnection for any other purpose.</p>

	      <p>The Close method fills in the values for output parameters, return values and RecordsAffected.</p>

	    <br />

	  <br />

	  
	    <h4>GetBoolean Method</h4>

	    <p>Gets the value of the specified column as a Boolean.</p>

	    
	      public
	      <span class="computeroutput">bool</span>
	      GetBoolean
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>A Boolean that is the value of the column.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetBoolean</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetByte Method</h4>

	    
	      public
	      <span class="computeroutput">byte</span>
	      GetByte
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a byte.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetByte</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetBytes Method</h4>

	    <p>Reads a stream of bytes from the specified column offset into the buffer as an array,
starting at the given buffer offset.</p>

	    
	      public
	      <span class="computeroutput">long</span>
	      GetBytes
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	      
		<span class="mptype">long</span>
		<span class="mpparam">fieldOffset</span>
	      
	      
		<span class="mptype">byte[]</span>
		<span class="mpparam">buffer</span>
	      
	      
		<span class="mptype">int</span>
		<span class="mpparam">bufferOffset</span>
	      
	      
		<span class="mptype">int</span>
		<span class="mpparam">length</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">fieldOffset:</td>
        <td>
		    The index within the field from which to begin the read operation.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">buffer:</td>
        <td>
		    The buffer into which to read the stream of bytes.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">bufferOffset:</td>
        <td>
		    The index for buffer to begin the read operation.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">length:</td>
        <td>
		    The number of bytes to read.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The actual number of bytes read.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetBytes</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>GetBytes returns the number of available bytes in the field. In most cases this is the exact
length of the field. However, the number returned may be less than the true length of the field if GetBytes has
already been used to obtain bytes from the field. This may be the case, for example, if the VirtuosoDataReader is
reading a large data structure into a buffer. For more information, see the SequentialAccess setting of
System.Data.CommandBehavior in the Microsoft® .NET Framework SDK documentation.</p>

	      <p>If you pass a buffer that is a null value, GetBytes returns the length of the field in bytes.</p>

	    <br />

	  <br />

	  
	    <h4>GetChar Method</h4>

	    
	      public
	      <span class="computeroutput">char</span>
	      GetChar
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a character.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetChar</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetChars Method</h4>

	    <p>Reads a stream of characters from the specified column offset into the buffer as an array,
starting at the given buffer offset.</p>

	    
	      public
	      <span class="computeroutput">long</span>
	      GetChars
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	      
		<span class="mptype">long</span>
		<span class="mpparam">fieldOffset</span>
	      
	      
		<span class="mptype">char[]</span>
		<span class="mpparam">buffer</span>
	      
	      
		<span class="mptype">int</span>
		<span class="mpparam">bufferOffset</span>
	      
	      
		<span class="mptype">int</span>
		<span class="mpparam">length</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">fieldOffset:</td>
        <td>
		    The index within the field from which to begin the read operation.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">buffer:</td>
        <td>
		    The buffer into which to copy data..
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">bufferOffset:</td>
        <td>
		    The index for buffer to begin the read operation.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">length:</td>
        <td>
		    The number of characters to read.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The actual number of characters read.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetChars</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>GetChars returns the number of available characters in the field. In most cases this is the
exact length of the field. However, the number returned may be less than the true length of the field if GetChars
has already been used to obtain characters from the field. This may be the case, for example, if the
VirtuosoDataReader is reading a large data structure into a buffer. For more information, see the SequentialAccess
setting of System.Data.CommandBehavior in the Microsoft® .NET Framework SDK documentation.</p>

	      <p>If you pass a buffer that is a null value. GetChars returns the length of the field in
characters.</p>

	    <br />

	  <br />

	  
	    <h4>GetData Method</h4>

	    <p>Not currently supported.</p>

	    
	      public
	      <span class="computeroutput">IDataReader</span>
	      GetData
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetData</p>
	    <br />

	  <br />

	  
	    <h4>GetDataTypeName Method</h4>

	    <p>Gets the name of the source data type.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      GetDataTypeName
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The name of the source data type.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetDataTypeName</p>
	    <br />

	  <br />

	  
	    <h4>GetDateTime Method</h4>

	    <p>Gets the value of the specified column as a DateTime object.</p>

	    
	      public
	      <span class="computeroutput">DateTime</span>
	      GetDateTime
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a DateTime object.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetDateTime</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetDecimal Method</h4>

	    <p>Gets the value of the specified column as a Decimal object.</p>

	    
	      public
	      <span class="computeroutput">decimal</span>
	      GetDecimal
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a Decimal object.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetDecimal</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetDouble Method</h4>

	    
	      public
	      <span class="computeroutput">double</span>
	      GetDouble
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a double-precision floating point number.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetDouble</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetFieldType Method</h4>

	    <p>Gets the Type that is the data type of the object.</p>

	    
	      public
	      <span class="computeroutput">Type</span>
	      GetFieldType
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The Type that is the data type of the object.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetFieldType</p>
	    <br />

	  <br />

	  
	    <h4>GetFloat Method</h4>

	    
	      public
	      <span class="computeroutput">float</span>
	      GetFloat
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a single-precision floating-point number.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetFloat</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetGuid Method</h4>

	    <p>Gets the value of the specified column as a globally-unique identifier (GUID).</p>

	    
	      public
	      <span class="computeroutput">Guid</span>
	      GetGuid
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a GUID.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetGuid</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetInt16 Method</h4>

	    <p>Gets the value of the specified column as a 16-bit signed integer.</p>

	    
	      public
	      <span class="computeroutput">short</span>
	      GetInt16
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a 16-bit signed integer.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetInt16</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetInt32 Method</h4>

	    <p>Gets the value of the specified column as a 32-bit signed integer</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      GetInt32
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a 32-bit signed integer.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetInt32</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetInt64 Method</h4>

	    <p>Gets the value of the specified column as a 64-bit signed integer.</p>

	    
	      public
	      <span class="computeroutput">long</span>
	      GetInt64
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a 64-bit signed integer.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetInt64</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetName Method</h4>

	    <p>Gets the name of the specified column.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      GetName
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>A string that is the name of the specified column.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetName</p>
	    <br />
	  <br />

	  
	    <h4>GetOrdinal Method</h4>

	    <p>Gets the column ordinal, given the name of the column.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      GetOrdinal
	      
		<span class="mptype">string</span>
		<span class="mpparam">name</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">name:</td>
        <td>
		    The name of the column.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The zero-based column ordinal.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetOrdinal</p>
	    <br />



	  <br />

	  
	    <h4>GetSchemaTable Method</h4>

	    <p>Returns a DataTable that describes the column metadata of the VirtuosoDataReader.</p>

	    
	      public
	      <span class="computeroutput">DataTable</span>
	      GetSchemaTable
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>A DataTable that describes the column metadata.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataReader.GetSchemaTable</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>For the GetSchemaTable method returns metadata about each column in the following order:</p>

	      <table class="data">
		
		  
		    <tr>
		      <th class="data">DataReader Column</th>
		      <th class="data">Description</th>
		    </tr>
		  
		  
		    <tr>
		      <td class="data">ColumnName</td>
		      <td class="data">The name of the column; this might not be unique. If the column name cannot be determined,
a null value is returned. This name always reflects the most recent naming of the column in the current view or command
text.</td>
		    </tr>
		    <tr>
		      <td class="data">ColumnOrdinal</td>
		      <td class="data">The ordinal of the column. This is zero for the bookmark column of the row, if any. Other
columns are numbered starting with one. This column cannot contain a null value.</td>
		    </tr>
		    <tr>
		      <td class="data">ColumnSize</td>
		      <td class="data">The maximum possible length of a value in the column. For columns that use a fixed-length
data type, this is the size of the data type.</td>
		    </tr>
		    <tr>
		      <td class="data">NumericPrecision</td>
		      <td class="data">If ProviderType is a numeric data type, this is the maximum precision of the column.
The precision depends on the definition of the column. If ProviderType is not a numeric data type, this is a null
value.</td>
		    </tr>
		    <tr>
		      <td class="data">NumericScale</td>
		      <td class="data">If ProviderType is decimal, the number of digits to the right of the decimal point.
Otherwise, this is a null value.</td>
		    </tr>
		    <tr>
		      <td class="data">DataType</td>
		      <td class="data">Maps to the .Net Framework type of the column.</td>
		    </tr>
		    <tr>
		      <td class="data">ProviderType</td>
		      <td class="data">The indicator of the column&#39;s data type. If the data type of the column varies from
row to row, this must be Object. This column cannot contain a null value.</td>
		    </tr>
		    <tr>
		      <td class="data">IsLong</td>
		      <td class="data">Set if the column contains a Binary Long Object (BLOB) that contains very long data.</td>
		    </tr>
		    <tr>
		      <td class="data">AllowDBNull</td>
		      <td class="data">Set if the consumer can set the column to a null value or if the provider cannot determine
whether or not the consumer can set the column to a null value. Otherwise, not set. A column may contain null values,
even if it cannot be set to a null value.</td>
		    </tr>
		    <tr>
		      <td class="data">IsReadOnly</td>
		      <td class="data">
          <span class="computeroutput">true</span> if the column can be modified; otherwise
<span class="computeroutput">false</span>.</td>
		    </tr>
		    <tr>
		      <td class="data">IsRowVersion</td>
		      <td class="data" />
		    </tr>
		    <tr>
		      <td class="data">IsUnique</td>
		      <td class="data">
          <span class="computeroutput">true</span>: No two rows in the base table-the table returned in
BaseTableName-can have the same value in this column. IsUnique is guaranteed to be true if the column
constitutes a key by itself or if there is a constraint of type UNIQUE that applies only to this column.
<span class="computeroutput">false</span>: The column can contain duplicate values in the base table. The default of this
column is <span class="computeroutput">false</span>.</td>
		    </tr>
		    <tr>
		      <td class="data">IsKey</td>
		      <td class="data">
          <span class="computeroutput">true</span>: The column is one of a set of columns in the rowset that,
taken together, uniquely identify the row. The set of columns with IsKey set to <span class="computeroutput">true</span> must
uniquely identify a row in the rowset. There is no requirement that this set of columns is a minimal set of
columns. This set of columns may be generated from a base table primary key, a unique constraint or a unique
index. <span class="computeroutput">false</span>: The column is not required to uniquely identify the row.</td>
		    </tr>
		    <tr>
		      <td class="data">IsAutoIncrement</td>
		      <td class="data">
          <span class="computeroutput">true</span>: The column assigns values to new rows in fixed increments.
<span class="computeroutput">false</span>: The column does not assign values to new rows in fixed increments. The default of this
column is <span class="computeroutput">false</span>.</td>
		    </tr>
		    <tr>
		      <td class="data">BaseSchemaName</td>
		      <td class="data">The name of the schema in the data store that contains the column. A null value if
the base schema name cannot be determined. The default of this column is a null value.</td>
		    </tr>
		    <tr>
		      <td class="data">BaseCatalogName</td>
		      <td class="data">The name of the catalog in the data store that contains the column. NULL if the base
catalog name cannot be determined. The default of this column is a null value.</td>
		    </tr>
		    <tr>
		      <td class="data">BaseTableName</td>
		      <td class="data">The name of the table or view in the data store that contains the column. A null value
if the base table name cannot be determined. The default of this column is a null value.</td>
		    </tr>
		    <tr>
		      <td class="data">BaseColumnName</td>
		      <td class="data">The name of the column in the data store. This might be different than the column name
returned in the ColumnName column if an alias was used. A null value if the base column name cannot be determined or
if the rowset column is derived, but not identical to, a column in the data store. The default of this column is
a null value.</td>
		    </tr>
		  
		
	      </table>
    <br />

	    <br />

	  <br />

	  
	    <h4>GetString Method</h4>

	    <p>Gets the value of the specified column as a string.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      GetString
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value of the specified column as a string.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetString</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Call IsDBNull to check for null values before calling this method.</p>
	    <br />

	  <br />

	  
	    <h4>GetValue Method</h4>

	    <p>Gets the value of the column at the specified ordinal in its native format.</p>

	    
	      public
	      <span class="computeroutput">object</span>
	      GetValue
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The value to return.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetValue</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>This method returns DBNull for null database columns.</p>
	    <br />

	  <br />

	  
	    <h4>GetValues Method</h4>

	    <p>Gets all the attribute columns in the current row.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      GetValues
	      
		<span class="mptype">object[]</span>
		<span class="mpparam">values</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">values:</td>
        <td>
		    An array of type Object into which to copy the attribute columns.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>The number of instances of Object in the array.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.GetValues</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>For most applications, the GetValues method provides an efficient means for retrieving
all columns, rather than retrieving each column individually.</p>

	      <p>You can pass an Object array that contains fewer than the number of columns contained
in the resulting row. Only the amount of data the Object array holds is copied to the array. You can also
pass an Object array whose length is more than the number of columns contained in the resulting row.</p>

	      <p>This method returns DBNull for null database columns.</p>

	    <br />

	  <br />

	  
	    <h4>IDisposable.Dispose Method</h4>

	    <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended to be
used directly from your code.</p>

	    
	      
	      IDisposable.Dispose
	      
	    

	  <br />

	  
	    <h4>IEnumerable.GetEnumerator Method</h4>

	    <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended to be
used directly from your code.</p>

	    
	      <span class="computeroutput">IEnumerable</span>
	      IEnumerable.GetEnumerator
	      
	    
	  <br />

	  
	    <h4>IsDBNull Method</h4>

	    <p>Gets a value indicating whether the column contains non-existent or missing values.</p>

	    
	      public
	      <span class="computeroutput">bool</span>
	      IsDBNull
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based column ordinal.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>
      <span class="computeroutput">true</span> if the specified column value is equivalent to DBNull;
otherwise, <span class="computeroutput">false</span>.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataRecord.IsDBNull</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>To avoid raising an error, call this method to check for null column values before calling
the typed Get methods (for example, GetByte, GetChar, and so on).</p>
	    <br />

	  <br />

	  
	    <h4>NextResult Method</h4>

	    <p>Advances the VirtuosoDataReader to the next result, when reading the results
of batch SQL statements.</p>

	    
	      public
	      <span class="computeroutput">bool</span>
	      NextResult
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>
      <span class="computeroutput">true</span> if there are more result sets; otherwise, <span class="computeroutput">false</span>.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataReader.NextResult</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>Used to process multiple results, which can be generated by executing batch SQL statements.</p>

	      <p>By default, the VirtuosoDataReader is positioned on the first result.</p>

	    <br />

	  <br />

	  
	    <h4>Read Method</h4>

	    <p>Advances the VirtuosoDataReader to the next record.</p>

	    
	      public
	      <span class="computeroutput">bool</span>
	      Read
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>
      <span class="computeroutput">true</span> if there are more rows; otherwise, <span class="computeroutput">false</span>.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataReader.Read</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>The default position of the VirtuosoDataReader is prior to the first record. Therefore,
you must call Read to begin accessing any data.</p>

	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirterrclass" />
    <h4>7.1.3.9. VirtuosoError Class</h4>

	<p>Collects information relevant to a warning or error returned by Virtuoso server. This class cannot
be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   VirtuosoError</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoError</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>

	  <p>This class is created by the Virtuoso .NET Data Provider when an error occurs. An instance of
VirtuosoError is created and managed by the VirtuosoErrorCollection, which in turn is created by the
VirtuosoException class.</p>

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>Message</h4>

	    <p>Gets a short description of the error.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      Message
	    

	    
	      <h4>Property Value</h4>
	      <p>A description of the error.</p>
	    <br />

	  <br />

	  
	    <h4>SQLState</h4>

	    <p>Gets the five-character error code that follows the ANSI SQL standard for the database.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      SQLState
	    

	    
	      <h4>Property Value</h4>
	      <p>The five-character error code, which identifies the source of the error.</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirterrcollclass" />
    <h4>7.1.3.10. VirtuosoErrorCollection Class</h4>

	<p>Collects all errors generated by the Virtuoso .NET Data Provider. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   VirtuosoErrorCollection</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoErrorCollection</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">ICollection</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>
	  <p>This class is created by VirtuosoException to collect instances of the VirtuosoError class.
VirtuosoErrorCollection always contains at least one instance of the VirtuosoError class.</p>
	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>Count Property</h4>

	    <p>Gets the number of errors in the collection.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      Count
	    

	    
	      <h4>Property Value</h4>
	      <p>The total number of errors in the collection.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>ICollection.Count</p>
	    <br />

	  <br />

	  
	    <h4>Item Property</h4>

	    <p>Gets the error at the specified index.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoError</span>
	      this[int i]
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The zero-based index of the error to retrieve.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Property Value</h4>
	      <p>A VirtuosoError that contains the error at the specified index.</p>
	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>CopyTo Method</h4>

	    <p>Copies the elements of the VirtuosoErrorCollection into an array, starting at the given index
within the array.</p>

	    
	      public
	      
	      CopyTo
	      
		<span class="mptype">Array</span>
		<span class="mpparam">array</span>
	      
	      
		<span class="mptype">int</span>
		<span class="mpparam">i</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">array:</td>
        <td>
		    The array into which to copy the elements.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">i:</td>
        <td>
		    The starting index of array.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>ICollection.CopyTo</p>
	    <br />

	  <br />

	  
	    <h4>GetEnumerator Method</h4>

	    <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended to be
used directly from your code.</p>

	    
	      <span class="computeroutput">IEnumerable</span>
	      IEnumerable.GetEnumerator
	      
	    
	  <br />

	<br />

      <br />

      
	<a name="vcrvirtexcepclass" />
    <h4>7.1.3.11. VirtuosoException Class</h4>

	<p>The exception that is thrown when Virtuoso server returns a warning or error. This class cannot be
inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.Exception</li>
      <li>      System.SystemException</li>
      <li>         VirtuosoException</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoException</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">SystemException</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>

	  <p>This class is created whenever the Virtuoso .NET Data Provider encounters an error generated by
the server (Client-side errors are raised as standard common language runtime exceptions.). It always contains
at least one instance of VirtuosoError.</p>

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>Errors Property</h4>

	    <p>Gets a collection of one or more VirtuosoError objects that give detailed information about
exceptions generated by the Virtuoso .NET Data Provider.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoErrorCollection</span>
	      Errors
	    

	    
	      <h4>Property Value</h4>
	      <p>The collected instances of the VirtuosoError class.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>This property is a wrapper for the VirtuosoErrorCollection.</p>
	    <br />

	  <br />

	  
	    <h4>Message Property</h4>

	    <p>Gets the text describing the error.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      Message
	    

	    
	      <h4>Property Value</h4>
	      <p>The text describing the error.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>This is a wrapper for the Message property of the first VirtuosoError in the Errors property.</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtinfmsgevtargclass" />
    <h4>7.1.3.12. VirtuosoInfoMessageEventArgs Class</h4>

	<p>Provides data for the InfoMessage event. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.EventArgs</li>
      <li>      VirtuosoInfoMessageEventArgs</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoInfoMessageEventArgs</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">EventArgs</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>
	  <p>The InfoMessage event contains a VirtuosoErrorCollection collection with warnings sent from the
Virtuoso srver.</p>
	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>Errors Property</h4>

	    <p>Gets the collection of warnings sent from the Virtuoso server.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoErrorCollection</span>
	      Errors
	    

	    
	      <h4>Property Value</h4>
	      <p>The collection of warnings sent from the server.</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtinfmsgevthndlrdel" />
    <h4>7.1.3.13. VirtuosoInfoMessageEventHandler Delegate</h4>

	<p>Represents the method that will handle the InfoMessage event of a VirtuosoConnection.</p>

	
	  public
	  delegate
	  
	  VirtuosoInfoMessageEventHandler
	  
	    <span class="mptype">object</span>
	    <span class="mpparam">sender</span>
	  
	  
	    <span class="mptype">VirtuosoInfoMessageEventArgs</span>
	    <span class="mpparam">e</span>
	  
	

	
	  <h4>Parameters</h4>
	  <p>The declaration of your event handler must have the same parameters as the VirtuosoInfoMessageEventHandler
delegate declaration. </p>
	  <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">sender:</td>
        <td>
		The source of the event.
	      </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">e:</td>
        <td>
		A VirtuosoInfoMessageEventArgs object that contains the event data.
	      </td>
    </tr>
    </table>
	<br />

	
	  <h4>Remarks</h4>

	  <p>When you create a VirtuosoInfoMessageEventArgs delegate, you identify the method that will handle
the event. To associate the event with your event handler, add an instance of the delegate to the event. The event
handler is called whenever the event occurs, unless you remove the delegate. For more information about event handler
delegates, see &quot;Events and Delegates&quot; in the .NET Framework SDK documentation.</p>

	<br />

      <br />

      
	<a name="vcrvirtparamclass" />
    <h4>7.1.3.14. VirtuosoParameter Class</h4>

	<p>Represents a parameter to an VirtuosoCommand and optionally, its mapping to a DataColumn.
This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.MarshalByRefObject</li>
      <li>      VirtuosoParameter</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoParameter</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">MarshalByRefObject</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDbDataParameter</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDataParameter</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">ICloneable</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>VirtuosoParameter Constructor</h4>

	  
	    <h4>VirtuosoParameter Constructor ()</h4>

	    <p>Initializes a new instance of the VirtuosoParameter class.</p>

	    
	      public
	      VirtuosoParameter
	      
	    

	  <br />

	  
	    <h4>VirtuosoParameter Constructor (string, object)</h4>

	    <p>Initializes a new instance of the VirtuosoParameter class with the parameter name and value.</p>

	    
	      public
	      VirtuosoParameter
	      
		<span class="mptype">string</span>
		<span class="mpparam">parameterName</span>
	      
	      
		<span class="mptype">object</span>
		<span class="mpparam">object</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		    The name of the parameter to map.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		    An Object that is the value of the VirtuosoParameter.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>When you specify an Object in the value parameter, the VirtDbType is inferred from
the .NET Framework type of the Object.</p>
	    <br />

	  <br />

	  
	    <h4>VirtuosoParameter Constructor (string, VirtDbType)</h4>

	    <p>Initializes a new instance of the VirtuosoParameter class with the parameter name and the data type.</p>

	    
	      public
	      VirtuosoParameter
	      
		<span class="mptype">string</span>
		<span class="mpparam">parameterName</span>
	      
	      
		<span class="mptype">VirtDbType</span>
		<span class="mpparam">dbType</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		    The name of the parameter to map.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">dbType:</td>
        <td>
		    One of the VirtDbType values.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The data type, and if appropriate, Size and Precision are inferred from the value of the
dbType parameter.</p>
	    <br />

	  <br />

	  
	    <h4>VirtuosoParameter Constructor (string, VirtDbType, int)</h4>

	    <p>Initializes a new instance of the VirtuosoParameter class with the parameter name,
the VirtDbType, and the size.</p>

	    
	      public
	      VirtuosoParameter
	      
		<span class="mptype">string</span>
		<span class="mpparam">parameterName</span>
	      
	      
		<span class="mptype">VirtDbType</span>
		<span class="mpparam">dbType</span>
	      
	      
		<span class="mptype">int</span>
		<span class="mpparam">size</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		    The name of the parameter to map.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">dbType:</td>
        <td>
		    One of the VirtDbType values.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">size:</td>
        <td>
		    The width of the parameter.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The Size is inferred from the value of the dbType parameter if it is not explicitly set
in the size parameter.</p>
	    <br />

	  <br />

	  
	    <h4>VirtuosoParameter Constructor (string, VirtDbType, int, string)</h4>

	    <p>Initializes a new instance of the VirtuosoParameter class with the parameter name, VirtDbType, size,
and source column name.</p>

	    
	      public
	      VirtuosoParameter
	      
		<span class="mptype">string</span>
		<span class="mpparam">parameterName</span>
	      
	      
		<span class="mptype">VirtDbType</span>
		<span class="mpparam">dbType</span>
	      
	      
		<span class="mptype">int</span>
		<span class="mpparam">size</span>
	      
	      
		<span class="mptype">string</span>
		<span class="mpparam">sourceColumn</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		    The name of the parameter to map.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">dbType:</td>
        <td>
		    One of the VirtDbType values.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">size:</td>
        <td>
		    The width of the parameter.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">sourceColumn:</td>
        <td>
		    The name of the source column.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The Size is inferred from the value of the dbType parameter if it is not explicitly set
in the size parameter.</p>
	    <br />

	  <br />

	  
	    <h4>VirtuosoParameter Constructor (string, VirtDbType, int, ParameterDirection, Boolean, Byte, Byte, String, DataRowVersion, Object)</h4>

	    <p>Initializes a new instance of the VirtuosoParameter class with the parameter name,
the type of the parameter, the size of the parameter, a ParameterDirection, the precision of the parameter,
the scale of the parameter, the source column, a DataRowVersion to use, and the value of the parameter.</p>

	    
	      public
	      VirtuosoParameter
	      
		<span class="mptype">string</span>
		<span class="mpparam">parameterName</span>
	      
	      
		<span class="mptype">VirtDbType</span>
		<span class="mpparam">dbType</span>
	      
	      
		<span class="mptype">int</span>
		<span class="mpparam">size</span>
	      
	      
		<span class="mptype">ParameterDirection</span>
		<span class="mpparam">direction</span>
	      
	      
		<span class="mptype">bool</span>
		<span class="mpparam">isNullable</span>
	      
	      
		<span class="mptype">byte</span>
		<span class="mpparam">precision</span>
	      
	      
		<span class="mptype">byte</span>
		<span class="mpparam">scale</span>
	      
	      
		<span class="mptype">string</span>
		<span class="mpparam">sourceColumn</span>
	      
	      
		<span class="mptype">DataRowVersion</span>
		<span class="mpparam">sourceVersion</span>
	      
	      
		<span class="mptype">object</span>
		<span class="mpparam">value</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		    The name of the parameter to map.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">dbType:</td>
        <td>
		    One of the VirtDbType values.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">size:</td>
        <td>
		    The width of the parameter.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">direction:</td>
        <td>
		    One of the System.Data.ParameterDirection values.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">isNullable:</td>
        <td>
		    <span class="computeroutput">true</span> if the value of the field can be null, otherwise <span class="computeroutput">false</span>.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">precision:</td>
        <td>
		    The total number of digits to the left and right of the decimal point to which Value is resolved.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">scale:</td>
        <td>
		    The total number of decimal places to which Value is resolved.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">sourceColumn:</td>
        <td>
		    The name of the source column.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">sourceVersion:</td>
        <td>
		    One of the System.Data.DataRowVersion values.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		    An Object that is the value of the VirtuosoParameter.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The Size and Precision are inferred from the value of the dbType parameter if they are not
explicitly set in the size and precision parameters.</p>
	    <br />

	  <br />

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>DbType Property</h4>

	    <p>Gets or sets the DbType of the parameter.</p>

	    
	      public
	      <span class="computeroutput">DbType</span>
	      DbType
	    

	    
	      <h4>Property Value</h4>
	      <p>One of the System.Data.DbType values. The default is String.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataParameter.DbType</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>The VirtDbType and DbType are linked. Therefore, setting the DbType changes the VirtDbType to
a supporting VirtDbType.</p>

	      <p>For a list of the supported data types, see the appropriate VirtDbType member.</p>

	    <br />

	  <br />

	  
	    <h4>Direction Property</h4>

	    <p>Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional,
or a stored procedure return value parameter.</p>

	    
	      public
	      <span class="computeroutput">ParameterDirection</span>
	      Direction
	    

	    
	      <h4>Property Value</h4>
	      <p>One of the System.Data.ParameterDirection values. The default is Input.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataParameter.Direction</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>If the ParameterDirection is Output, and execution of the associated VirtuosoCommand does not
return a value, the VirtuosoParameter will contain a null value. Null values are handled using the DBNull class.
After the last row from the last resultset is read, the Output, InputOut, and ReturnValue parameters are updated.</p>

	    <br />

	  <br />

	  
	    <h4>IsNullable Property</h4>

	    <p>Gets or sets a value indicating whether the parameter accepts null values.</p>

	    
	      public
	      <span class="computeroutput">bool</span>
	      IsNullable
	    

	    
	      <h4>Property Value</h4>
	      <p>
      <span class="computeroutput">true</span> if null values are accepted; otherwise, <span class="computeroutput">false</span>.
The default is <span class="computeroutput">false</span>.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataParameter.IsNullable</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Null values are handled using the System.DBNull class.</p>
	    <br />

	  <br />

	  
	    <h4>ParameterName Property</h4>

	    <p>Gets or sets the name of the VirtuosoParameter.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      ParameterName
	    

	    
	      <h4>Property Value</h4>
	      <p>The name of the VirtuosoParameter. The default is an empty string (&quot;&quot;).</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataParameter.ParameterName</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Instead of named parameters, the Virtuoso .NET Data Provider uses positional parameters that are
marked with a question mark (?) in the syntax of the command text. Parameter objects in the VirtuosoParameterCollection
and the actual parameters accepted by the stored procedure or parameterized SQL statement correspond to each other
based on the order in which the VirtuosoParameter objects are inserted into the collection rather than by parameter
name. Parameter names can be supplied, but will be ignored during parameter object binding.</p>
	    <br />

	  <br />

	  
	    <h4>Precision Property</h4>

	    <p>Gets or sets the maximum number of digits used to represent the Value property.</p>

	    
	      public
	      <span class="computeroutput">byte</span>
	      Precision
	    

	    
	      <h4>Property Value</h4>
	      <p>The maximum number of digits used to represent the Value property. The default value is 0.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbDataParameter.Precision</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>The Precision property is used only for decimal and numeric input parameters.</p>

	    <br />

	  <br />

	  
	    <h4>Scale Property</h4>

	    <p>Gets or sets the number of decimal places to which Value is resolved.</p>

	    
	      public
	      <span class="computeroutput">byte</span>
	      Scale
	    

	    
	      <h4>Property Value</h4>
	      <p>The number of decimal places to which Value is resolved. The default is 0.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbDataParameter.Scale</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The Scale property is used only for decimal and numeric input parameters.</p>
	    <br />

	  <br />

	  
	    <h4>Size Property</h4>

	    <p>Gets or sets the maximum size, in bytes, of the data within the column.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      Size
	    

	    
	      <h4>Property Value</h4>
	      <p>The maximum size, in bytes, of the data within the column. The default value is inferred from
the parameter value.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbDataParameter.Size</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>The Size property is used for binary and string types.</p>

	      <p>For variable-length data types, the Size property describes the maximum amount of data to transmit
to the server. For example, for a string value, the Size property could be used to limit the amount of data sent to the
server to the first one hundred bytes.</p>

	      <p>For nonstring data types and ANSI string data, the Size property refers to the number of bytes.
For Unicode string data, the Size property refers to the number of characters. The count for strings does not include
the terminating character.</p>

	      <p>If not explicitly set, the value of Size is inferred from the actual size of the specified parameter
value.</p>

	      <p>For fixed-width data types, the value of Size is ignored. It can be retrieved for informational
purposes, and returns the maximum amount of bytes the provider uses when transmitting the value of the parameter to
the server.</p>

	    <br />

	  <br />

	  
	    <h4>SourceColumn Property</h4>

	    <p>Gets or sets the name of the source column mapped to the DataSet and used for loading or returning
the Value.</p>

	    
	      public
	      <span class="computeroutput">string</span>
	      SourceColumn
	    

	    
	      <h4>Property Value</h4>
	      <p>The name of the source column that will be used to set the value of this parameter. The default
is an empty string (&quot;&quot;).</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataParameter.SourceColumn</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>When SourceColumn is set to anything other than an empty string, the value of the parameter is
retrieved from the column with the SourceColumn name. If Direction is set to Input, the value is taken from the DataSet.
If Direction is set to Output, the value is taken from the data source. A Direction of InputOutput is a combination
of both.</p>

	    <br />

	  <br />

	  
	    <h4>SourceVersion Property</h4>

	    <p>Gets or sets the DataRowVersion to use when loading Value.</p>

	    
	      public
	      <span class="computeroutput">DataRowVersion</span>
	      DataRowVersion
	    

	    
	      <h4>Property Value</h4>
	      <p>One of the System.Data.DataRowVersion values. The default is Current.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataParameter.SourceVersion</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>The SourceVersion is used by UpdateCommand during an Update operation to determine whether the
parameter value is set to Current or Original. This allows primary keys to be updated. This property is ignored by
InsertCommand and DeleteCommand.</p>

	      <p>This property is set to the version of the DataRow used by either the Item property
(DataRow indexer), or the GetChildRows method of the DataRow object.</p>

	    <br />

	  <br />

	  
	    <h4>Value Property</h4>

	    <p>Gets or sets the value of the parameter.</p>

	    
	      public
	      <span class="computeroutput">object</span>
	      Value
	    

	    
	      <h4>Property Value</h4>
	      <p>An Object that is the value of the parameter. The default value is null.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDataParameter.Value</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>For input parameters, the value is bound to the VirtuosoCommand that is sent to the server.
For output and return-value parameters, the value is set on completion of the VirtuosoCommand and after the
VirtuosoDataReader is closed.</p>

	      <p>When sending a null parameter value to the server, the user must specify DBNull, not null.
A null value in the system is an empty object that has no value. DBNull is used to represent null values.</p>

	      <p>If the application specifies the database type, the bound value is converted to that type when
the provider sends the data to the server. The provider attempts to convert any type of value if it supports the
IConvertible interface. Conversion errors may result if the specified type is not compatible with the value.</p>

	      <p>Both the DbType and VirtDbType properties can be inferred by setting Value. If applicable,
the size, precision and scale will also be inferred from Value.</p>

	      <p>The Value property is overwritten by the Update method.</p>

	    <br />

	  <br />

	  
	    <h4>VirtDbType Property</h4>

	    <p>Gets or sets the VirtDbType of the parameter.</p>

	    
	      public
	      <span class="computeroutput">VirtDbType</span>
	      VirtDbType
	    

	    
	      <h4>Property Value</h4>
	      <p>One of the VirtDbType values. The default is NVarChar.</p>
	    <br />

	    
	      <h4>Remarks</h4>

	      <p>The VirtDbType and DbType are linked. Therefore, setting the DbType changes the VirtDbType
to a supporting VirtDbType.</p>

	      <p>For a list of the supported data types, see the appropriate VirtDbType member. For more information,
see &quot;Using Parameters with a DataAdapter&quot; in the Microsoft® .NET Framework SDK documentation.</p>

	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>ICloneable.Clone Method</h4>

	    <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended to be used
directly from your code.</p>

	    
	      <span class="computeroutput">object</span>
	      ICloneable.Clone
	      
	    

	  <br />

	  
	    <h4>ToString Method</h4>

	    <p>Gets a string containing the ParameterName.</p>

	    
	      public
	      override
	      <span class="computeroutput">string</span>
	      ToString
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>A string containing the ParameterName.</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtparamcollclass" />
    <h4>7.1.3.15. VirtuosoParameterCollection Class</h4>

	<p>Represents a collection of parameters relevant to a VirtuosoCommand as well as their respective mappings
to columns in a DataSet. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.MarshalByRefObject</li>
      <li>      VirtuosoParameterCollection</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoParameterCollection</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">MarshalByRefObject</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDataParameterCollection</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">ICollection</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IEnumerable</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IList</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>Count Property</h4>

	    <p>Gets the number of VirtuosoParameter objects in the collection.</p>

	    
	      public
	      <span class="computeroutput">int</span>
	      Count
	    

	    
	      <h4>Property Value</h4>
	      <p>The number of VirtuosoParameter objects in the collection.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>ICollection.Count</p>
	    <br />

	  <br />

	  
	    <h4>Item Property</h4>

	    
	      <h4>Item Property (int)</h4>

	      <p>Gets or sets the VirtuosoParameter at the specified index.</p>

	      
		public
		<span class="computeroutput">object</span>
		this[int i]
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">index:</td>
        <td>
		      The zero-based index of the parameter to retrieve.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Property Value</h4>
		<p>The VirtuosoParameter at the specified index.</p>
	      <br />

	    <br />

	    
	      <h4>Item Property (string)</h4>

	      <p>Gets or sets the VirtuosoParameter with the specified name.</p>

	      
		public
		<span class="computeroutput">object</span>
		this[string parameterName]
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		      The name of the parameter to retrieve.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Property Value</h4>
		<p>The VirtuosoParameter with the specified name.</p>
	      <br />

	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>Add Method</h4>

	    
	      <h4>Add Method (object)</h4>

	      <p>Adds the specified VirtuosoParameter object to the VirtuosoParameterCollection.</p>

	      
		public
		<span class="computeroutput">int</span>
		Add
		
		  <span class="mptype">object</span>
		  <span class="mpparam">value</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		      The VirtuosoParameter to add to the collection.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>The index in the collection of the new VirtuosoParameter object.</p>
	      <br />

	      
		<h4>Implements</h4>
		<p>IList.Add</p>
	      <br />

	    <br />

	    
	      <h4>Add Method (VirtuosoParameter)</h4>

	      <p>Adds the specified VirtuosoParameter object to the VirtuosoParameterCollection.</p>

	      
		public
		<span class="computeroutput">VirtuosoParameter</span>
		Add
		
		  <span class="mptype">VirtuosoParameter</span>
		  <span class="mpparam">value</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		      The VirtuosoParameter to add to the collection.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>A reference to the new VirtuosoParameter object.</p>
	      <br />

	    <br />

	    
	      <h4>Add Method (string, object)</h4>

	      <p>Adds a VirtuosoParameter to the VirtuosoParameterCollection with the specified parameter name
and value.</p>

	      
		public
		<span class="computeroutput">VirtuosoParameter</span>
		Add
		
		  <span class="mptype">string</span>
		  <span class="mpparam">parameterName</span>
		
		
		  <span class="mptype">object</span>
		  <span class="mpparam">value</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		      The name of the parameter.
		    </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		      The Value of the VirtuosoParameter to add to the collection.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>The new VirtuosoParameter object.</p>
	      <br />

	    <br />

	    
	      <h4>Add Method (string, VirtDbType)</h4>

	      <p>Adds a VirtuosoParameter to the VirtuosoParameterCollection with the specified parameter name
and data type.</p>

	      
		public
		<span class="computeroutput">VirtuosoParameter</span>
		Add
		
		  <span class="mptype">string</span>
		  <span class="mpparam">parameterName</span>
		
		
		  <span class="mptype">VirtDbType</span>
		  <span class="mpparam">dbType</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		      The name of the parameter.
		    </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		      One of the VirtDbType values.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>The new VirtuosoParameter object.</p>
	      <br />

	    <br />

	    
	      <h4>Add Method (string, VirtDbType, int)</h4>

	      <p>Adds a VirtuosoParameter to the VirtuosoParameterCollection with the specified parameter name,
data type, and parameter size.</p>

	      
		public
		<span class="computeroutput">VirtuosoParameter</span>
		Add
		
		  <span class="mptype">string</span>
		  <span class="mpparam">parameterName</span>
		
		
		  <span class="mptype">VirtDbType</span>
		  <span class="mpparam">dbType</span>
		
		
		  <span class="mptype">int</span>
		  <span class="mpparam">size</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		      The name of the parameter.
		    </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		      One of the VirtDbType values.
		    </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">size:</td>
        <td>
		      The size of the parameter (width of the column).
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>The new VirtuosoParameter object.</p>
	      <br />

	    <br />

	    
	      <h4>Add Method (string, VirtDbType, int, string)</h4>

	      <p>Adds a VirtuosoParameter to the VirtuosoParameterCollection with the specified parameter name,
data type, parameter size, and source column name.</p>

	      
		public
		<span class="computeroutput">VirtuosoParameter</span>
		Add
		
		  <span class="mptype">string</span>
		  <span class="mpparam">parameterName</span>
		
		
		  <span class="mptype">VirtDbType</span>
		  <span class="mpparam">dbType</span>
		
		
		  <span class="mptype">int</span>
		  <span class="mpparam">size</span>
		
		
		  <span class="mptype">string</span>
		  <span class="mpparam">sourceColumn</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		      The name of the parameter.
		    </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		      One of the VirtDbType values.
		    </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">size:</td>
        <td>
		      The size of the parameter (width of the column).
		    </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">sourceColumn:</td>
        <td>
		      The name of the source column.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>The new VirtuosoParameter object.</p>
	      <br />

	    <br />

	  <br />

	  
	    <h4>Clear Method</h4>

	    <p>Removes all items from the collection.</p>

	    
	      public
	      
	      Clear
	      
	    

	    
	      <h4>Implements</h4>
	      <p>IList.Clear</p>
	    <br />

	  <br />

	  
	    <h4>Contains Method</h4>

	    
	      <h4>Contains Method (object)</h4>

	      <p>Gets a value indicating whether a VirtuosoParameter object exists in the collection.</p>

	      
		public
		<span class="computeroutput">bool</span>
		Contains
		
		  <span class="mptype">object</span>
		  <span class="mpparam">value</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		      The value of the VirtuosoParameter object to find.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>
      <span class="computeroutput">true</span> if the collection contains the VirtuosoParameter;
otherwise, <span class="computeroutput">false</span>.</p>
	      <br />

	      
		<h4>Implements</h4>
		<p>IList.Contains</p>
	      <br />

	    <br />

	    
	      <h4>Contains Method (string)</h4>

	      <p>Gets a value indicating whether a VirtuosoParameter object with the specified parameter name
exists in the collection.</p>

	      
		public
		<span class="computeroutput">bool</span>
		Contains
		
		  <span class="mptype">string</span>
		  <span class="mpparam">parameterName</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		      The name of the VirtuosoParameter object to find.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>
      <span class="computeroutput">true</span> if the collection contains the VirtuosoParameter;
otherwise, <span class="computeroutput">false</span>.</p>
	      <br />

	      
		<h4>Implements</h4>
		<p>IDataParameterCollection.Contains</p>
	      <br />

	    <br />

	  <br />

	  
	    <h4>CopyTo Method</h4>

	    <p>Copies VirtuosoParameter objects from the VirtuosoParameterCollection to the specified array.</p>

	    
	      public
	      
	      CopyTo
	      
		<span class="mptype">Array</span>
		<span class="mpparam">array</span>
	      
	      
		<span class="mptype">int</span>
		<span class="mpparam">index</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">array:</td>
        <td>
		    The array into which to copy the VirtuosoParameter objects.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">index:</td>
        <td>
		    The starting index of the array.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>ICollection.CopyTo</p>
	    <br />

	  <br />

	  
	    <h4>GetEnumerator Method</h4>

	    <p>This member supports the Microsoft® .NET Framework infrastructure and is not intended to be used
directly from your code.</p>

	    
	      public
	      <span class="computeroutput">IEnumerator</span>
	      GetEnumerator
	      
	    

	  <br />

	  
	    <h4>IndexOf Method</h4>

	    
	      <h4>IndexOf Method (object)</h4>

	      <p>Gets the location in the collection of a VirtuosoParameter object.</p>

	      
		public
		<span class="computeroutput">int</span>
		IndexOf
		
		  <span class="mptype">object</span>
		  <span class="mpparam">value</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		      The VirtuosoParameter object to find.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>The zero-based location of the VirtuosoParameter in the collection.</p>
	      <br />

	      
		<h4>Implements</h4>
		<p>IList.IndexOf</p>
	      <br />

	    <br />

	    
	      <h4>IndexOf Method (string)</h4>

	      <p>Gets the location in the collection of the VirtuosoParameter object with the specified parameter
name.</p>

	      
		public
		<span class="computeroutput">int</span>
		IndexOf
		
		  <span class="mptype">string</span>
		  <span class="mpparam">parameterName</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		      The name of the VirtuosoParameter object to find.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Return Value</h4>
		<p>The zero-based location of the VirtuosoParameter in the collection.</p>
	      <br />

	      
		<h4>Implements</h4>
		<p>IDataParameterCollection.IndexOf</p>
	      <br />

	    <br />

	  <br />

	  
	    <h4>Insert Method</h4>

	    <p>Inserts a VirtuosoParameter into the collection at the specified index.</p>

	    
	      public
	      
	      Insert
	      
		<span class="mptype">int</span>
		<span class="mpparam">index</span>
	      
	      
		<span class="mptype">object</span>
		<span class="mpparam">value</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">index:</td>
        <td>
		    The zero-based index where the parameter is to be inserted within the collection.
		  </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		    The VirtuosoParameter to add to the collection.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IList.Insert</p>
	    <br />

	  <br />

	  
	    <h4>Remove Method</h4>

	    <p>Removes the specified VirtuosoParameter from the collection.</p>

	    
	      public
	      
	      Remove
	      
		<span class="mptype">object</span>
		<span class="mpparam">value</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">value:</td>
        <td>
		    The VirtuosoParameter object to remove from the collection.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IList.Remove</p>
	    <br />

	  <br />

	  
	    <h4>RemoveAt Method</h4>

	    
	      <h4>RemoveAt Method (int)</h4>

	      <p>Removes the VirtuosoParameter at the specified index from the collection.</p>

	      
		public
		
		RemoveAt
		
		  <span class="mptype">int</span>
		  <span class="mpparam">index</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">index:</td>
        <td>
		      The zero-based index of the parameter to remove.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Implements</h4>
		<p>IList.RemoveAt</p>
	      <br />

	    <br />

	    
	      <h4>RemoveAt Method (string)</h4>

	      <p>Removes the VirtuosoParameter with the specified name from the collection.</p>

	      
		public
		
		RemoveAt
		
		  <span class="mptype">string</span>
		  <span class="mpparam">parameterName</span>
		
	      

	      
		<h4>Parameters</h4>
		<table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">parameterName:</td>
        <td>
		      The name of the parameter to remove.
		    </td>
    </tr>
    </table>
	      <br />

	      
		<h4>Implements</h4>
		<p>IDataParameterCollection.RemoveAt</p>
	      <br />
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtpermclass" />
    <h4>7.1.3.16. VirtuosoPermission Class</h4>

	<p>Provides the capability for the Virtuoso .NET Data Provider to ensure that a user has a security level
adequate to access a data source. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.Security.CodeAccessPermission</li>
      <li>      VirtuosoPermission</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoPermission</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">CodeAccessPermission</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IUnrestrictedPermission</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>VirtuosoPermission Constructor</h4>

	  
	    <h4>VirtuosoPermission Constructor ()</h4>

	    <p>Initializes a new instance of the VirtuosoPermission class.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoPermission</div>
	      <div class="void" />
	    </td>
    </tr>
    </table>

	  <br />

	  
	    <h4>VirtuosoPermission Constructor (PermissionState)</h4>

	    <p>Initializes a new instance of the VirtuosoPermission class.</p>

	    <table class="constructorsynopsis">
    <tr>
        <td>
	      <div class="modifier">public</div>
	      <div class="methodname">VirtuosoPermission</div>
	      <div class="methodparam">
		<span class="mptype">PermissionState</span>
		<span class="mpparam">state</span>
	      </div>
	    </td>
    </tr>
    </table>

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">state:</td>
        <td>
		    One of the System.Security.Permissions.PermissionState values.
		  </td>
    </tr>
    </table>
	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>Copy Method</h4>

	    <p>Creates and returns an identical copy of the current permission object.</p>

	    
	      public
	      override
	      <span class="computeroutput">IPermission</span>
	      Copy
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>A copy of the current permission object.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IPermission.Copy</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>A copy of a permission object represents the same access to resources as the original
permission object.</p>
	    <br />
	  <br />

	  
	    <h4>FromXml Method</h4>

	    <p>Reconstructs a security object with a specified state from an XML encoding.</p>

	    
	      public
	      override
	      
	      FromXml
	      
		<span class="mptype">SecurityElement</span>
		<span class="mpparam">securityElement</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">securityElement:</td>
        <td>
		    The XML encoding to use to reconstruct the security object.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>ISecurityEncodable.FromXml</p>
	    <br />

	  <br />

	  
	    <h4>Intersect Method</h4>

	    <p>Returns a new permission object representing the intersection of the current permission
object and the specified permission object.</p>

	    
	      public
	      override
	      <span class="computeroutput">IPermission</span>
	      Intersect
	      
		<span class="mptype">IPermission</span>
		<span class="mpparam">target</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">target:</td>
        <td>
		    A permission object to intersect with the current permission object. It must be of the same
		    type as the current permission object.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>A new permission object that represents the intersection of the current permission object
and the specified permission object. This new permission object is a null reference (Nothing in Visual Basic)
if the intersection is empty.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IPermission.Intersect</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The intersection of two permissions is a permission that describes the set of operations
they both describe in common. Only a demand that passes both original permissions will pass the intersection.</p>
	    <br />

	  <br />

	  
	    <h4>IsSubsetOf Method</h4>

	    <p>Returns a value indicating whether the current permission object is a subset of the specified
permission object.</p>

	    
	      public
	      override
	      <span class="computeroutput">bool</span>
	      IsSubsetOf
	      
		<span class="mptype">IPermission</span>
		<span class="mpparam">target</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">target:</td>
        <td>
		    A permission object that is to be tested for the subset relationship. This object must be of
		    the same type as the current permission object.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>
      <span class="computeroutput">true</span> if the current permission object is a subset of the specified
permission object; otherwise <span class="computeroutput">false</span>.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IPermission.IsSubsetOf</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The current permission object is a subset of the specified permission object if the current
permission object specifies a set of operations that is wholly contained by the specified permission object.
For example, a permission that represents access to C:\example.txt is a subset of a permission that represents
access to C:\. If this method returns true, the current permission object represents no more access to the
protected resource than does the specified permission object.</p>
	    <br />

	  <br />

	  
	    <h4>IsUnrestricted Method</h4>

	    <p>Returns a value indicating whether the permission can be represented as unrestricted without
any knowledge of the permission semantics.</p>

	    
	      public
	      <span class="computeroutput">bool</span>
	      IsUnrestricted
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>
      <span class="computeroutput">true</span> if the VirtuosoPermission instance was created with
PermissionState.Unrestricted; otherwise, <span class="computeroutput">false</span>.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IUnrestrictedPermission.IsUnrestricted</p>
	    <br />

	  <br />

	  
	    <h4>ToXml Method</h4>

	    <p>Creates an XML encoding of the security object and its current state.</p>

	    
	      public
	      override
	      <span class="computeroutput">SecurityElement</span>
	      ToXml
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>An XML encoding of the security object, including any state information.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>ISecurityEncodable.ToXml</p>
	    <br />

	  <br />

	  
	    <h4>Union Method</h4>

	    <p>Creates a permission that is the union of the permission and the specified permission.</p>

	    
	      public
	      override
	      <span class="computeroutput">IPermission</span>
	      Union
	      
		<span class="mptype">IPermission</span>
		<span class="mpparam">target</span>
	      
	    

	    
	      <h4>Parameters</h4>
	      <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">target:</td>
        <td>
		    A permission to combine with the current permission. It must be of the same type as
		    the current permission.
		  </td>
    </tr>
    </table>
	    <br />

	    
	      <h4>Return Value</h4>
	      <p>A new permission that represents the union of the current permission and the specified
permission.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The result of a call to Union is a permission that represents all the operations
represented by both the current permission and the specified permission. Any demand that passes either permission
passes their union.</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtpermattr" />
    <h4>7.1.3.17. VirtuosoPermissionAttribute</h4>

	<p>Allows security actions for VirtuosoPermission to be applied to code using declarative security.
This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.Attribute</li>
      <li>      System.Security.Permissions.SecurityAttribute</li>
      <li>         System.Security.Permissions.CodeAccessSecurityAttribute</li>
      <li>            VirtuosoPermissionAttribute</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoPermissionAttribute</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">CodeAccessSecurityAttribute</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>VirtuosoPermissionAttribute Constructor</h4>

	  <p>Initializes a new instance of the VirtuosoPermissionAttribute class.</p>

	  <table class="constructorsynopsis">
    <tr>
        <td>
	    <div class="modifier">public</div>
	    <div class="methodname">VirtuosoPermissionAttribute</div>
	  </td>
    </tr>
    </table>

	  
	    <h4>Parameters</h4>
	    <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">action:</td>
        <td>
		  One of the SecurityAction values representing an action that can be performed using declarative
		  security.
		</td>
    </tr>
    </table>
	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>CreatePermission Method</h4>

	    <p>Returns a VirtuosoPermission object that is configured according to the attribute properties.</p>

	    
	      public
	      override
	      <span class="computeroutput">IPermission</span>
	      CreatePermission
	      
	    

	    
	      <h4>Return Value</h4>
	      <p>A VirtuosoPermission object.</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtrowupdevtargclass" />
    <h4>7.1.3.18. VirtuosoRowUpdatedEventArgs Class</h4>

	<p>Provides data for the RowUpdated event. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.EventArgs</li>
      <li>      System.Data.Common.RowUpdatedEventArgs</li>
      <li>         VirtuosoRowUpdatedEventArgs</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoRowUpdatedEventArgs</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">RowUpdatedEventArgs</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>VirtuosoRowUpdatedEventArgs Constructor</h4>

	  <p>Initializes a new instance of the VirtuosoRowUpdatedEventArgs class.</p>

	  <table class="constructorsynopsis">
    <tr>
        <td>
	    <div class="modifier">public</div>
	    <div class="methodname">VirtuosoRowUpdatedEventArgs</div>
	    <div class="methodparam">
	      <span class="mptype">DataRow</span>
	      <span class="mpparam">row</span>
	    </div>
	    <div class="methodparam">
	      <span class="mptype">IDbCommand</span>
	      <span class="mpparam">command</span>
	    </div>
	    <div class="methodparam">
	      <span class="mptype">StatementType</span>
	      <span class="mpparam">statementType</span>
	    </div>
	    <div class="methodparam">
	      <span class="mptype">DataTableMapping</span>
	      <span class="mpparam">tableMapping</span>
	    </div>
	  </td>
    </tr>
    </table>

	  
	    <h4>Parameters</h4>
	    <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">row:</td>
        <td>
		  The DataRow sent through an Update.
		</td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">command:</td>
        <td>
		  The IDbCommand executed when Update is called.
		</td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">statementType:</td>
        <td>
		  One of the StatementType values that specifies the type of query executed.
		</td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">tableMapping:</td>
        <td>
		  The DataTableMapping sent through an Update.
		</td>
    </tr>
    </table>
	  <br />

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>Command Property</h4>

	    <p>Gets the VirtuosoCommand executed when Update is called.</p>

	    
	      public
	      new
	      <span class="computeroutput">VirtuosoCommand</span>
	      Command
	    

	    
	      <h4>Property Value</h4>
	      <p>The VirtuosoCommand executed when Update is called.</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtrowupdevthndlrdel" />
    <h4>7.1.3.19. VirtuosoRowUpdatedEventHandler Delegate</h4>

	<p>Represents the method that will handle the RowUpdated event of a VirtuosoDataAdapter.</p>

	
	  public
	  delegate
	  
	  VirtuosoRowUpdatedEventHandler
	  
	    <span class="mptype">object</span>
	    <span class="mpparam">sender</span>
	  
	  
	    <span class="mptype">VirtuosoRowUpdatedEventArgs</span>
	    <span class="mpparam">e</span>
	  
	

	
	  <h4>Parameters</h4>
	  <p>The declaration of your event handler must have the same parameters as the VirtuosoRowUpdatedEventHandler
delegate declaration. </p>
	  <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">sender:</td>
        <td>
		The source of the event.
	      </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">e:</td>
        <td>
		A VirtuosoRowUpdatedEventArgs object that contains the event data.
	      </td>
    </tr>
    </table>
	<br />

	
	  <h4>Remarks</h4>

	  <p>The handler is not required perform any action, and your code should avoid generating exceptions or
allowing exceptions to propagate to the calling method. Any exceptions that do reach the caller are ignored. When you
create a VirtuosoRowUpdatedEventHandler delegate, you identify the method that will handle the event. To associate
the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever
the event occurs, unless you remove the delegate. For more information about event handler delegates,
see &quot;Events and Delegates&quot; in the .NET Framework SDK documentation.</p>

	<br />

      <br />

      
	<a name="vcrvirtrowupsevtargsclass" />
    <h4>7.1.3.20. VirtuosoRowUpdatingEventArgs Class</h4>

	<p>Provides data for the RowUpdating event. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.EventArgs</li>
      <li>      System.Data.Common.RowUpdatingEventArgs</li>
      <li>         VirtuosoRowUpdatingEventArgs</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoRowUpdatingEventArgs</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">RowUpdatingEventArgs</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>VirtuosoRowUpdatingEventArgs Constructor</h4>

	  <p>Initializes a new instance of the VirtuosoRowUpdatingEventArgs class.</p>

	  <table class="constructorsynopsis">
    <tr>
        <td>
	    <div class="modifier">public</div>
	    <div class="methodname">VirtuosoRowUpdatingEventArgs</div>
	    <div class="methodparam">
	      <span class="mptype">DataRow</span>
	      <span class="mpparam">row</span>
	    </div>
	    <div class="methodparam">
	      <span class="mptype">IDbCommand</span>
	      <span class="mpparam">command</span>
	    </div>
	    <div class="methodparam">
	      <span class="mptype">StatementType</span>
	      <span class="mpparam">statementType</span>
	    </div>
	    <div class="methodparam">
	      <span class="mptype">DataTableMapping</span>
	      <span class="mpparam">tableMapping</span>
	    </div>
	  </td>
    </tr>
    </table>

	  
	    <h4>Parameters</h4>
	    <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">row:</td>
        <td>
		  The DataRow sent through an Update.
		</td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">command:</td>
        <td>
		  The IDbCommand executed when Update is called.
		</td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">statementType:</td>
        <td>
		  One of the StatementType values that specifies the type of query executed.
		</td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">tableMapping:</td>
        <td>
		  The DataTableMapping sent through an Update.
		</td>
    </tr>
    </table>
	  <br />

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>Command Property</h4>

	    <p>Gets or sets the VirtuosoCommand executed when Update is called.</p>

	    
	      public
	      new
	      <span class="computeroutput">VirtuosoCommand</span>
	      Command
	    

	    
	      <h4>Property Value</h4>
	      <p>The VirtuosoCommand executed when Update is called.</p>
	    <br />

	  <br />

	<br />

      <br />

      
	<a name="vcrvirtrowupdingevthndlrdel" />
    <h4>7.1.3.21. VirtuosoRowUpdatingEventHandler Delegate</h4>

	<p>Represents the method that will handle the RowUpdating event of a VirtuosoDataAdapter.</p>

	
	  public
	  delegate
	  
	  VirtuosoRowUpdatingEventHandler
	  
	    <span class="mptype">object</span>
	    <span class="mpparam">sender</span>
	  
	  
	    <span class="mptype">VirtuosoRowUpdatingEventArgs</span>
	    <span class="mpparam">e</span>
	  
	

	
	  <h4>Parameters</h4>
	  <p>The declaration of your event handler must have the same parameters as the VirtuosoRowUpdatingEventHandler
delegate declaration. </p>
	  <table class="varlist">
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">sender:</td>
        <td>
		The source of the event.
	      </td>
    </tr>
    <tr>
        <td align="right" valign="top" class="varterm" nowrap="nowrap">e:</td>
        <td>
		A VirtuosoRowUpdatingEventArgs object that contains the event data.
	      </td>
    </tr>
    </table>
	<br />

	
	  <h4>Remarks</h4>

	  <p>The handler is not required perform any action, and your code should avoid generating exceptions or
allowing exceptions to propagate to the calling method. Any exceptions that do reach the caller are ignored. When you
create a VirtuosoRowUpdatingEventHandler delegate, you identify the method that will handle the event. To associate
the event with your event handler, add an instance of the delegate to the event. The event handler is called whenever
the event occurs, unless you remove the delegate. For more information about event handler delegates,
see &quot;Events and Delegates&quot; in the .NET Framework SDK documentation.</p>

	<br />

      <br />

      
	<a name="vcrvirttransclass" />
    <h4>7.1.3.22. VirtuosoTransaction Class</h4>

	<p>Represents a transaction to be made at a Virtuoso database. This class cannot be inherited.</p>

	<ul>
      <li>System.Object</li>
      <li>   System.MarshalByRefObject</li>
      <li>      VirtuosoTransaction</li>
    </ul>

	<table class="classsynopsis">
    <tr>
        <td>
	  <div class="ooclass">
	    <div class="modifier">public</div>
	    <div class="modifier">sealed</div>
	    <div class="modifier">class</div>
	    <div class="classname">VirtuosoTransaction</div>
	  </div>
	  <div class="ooclass">
	    <div class="classname">MarshalByRefObject</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDbTransaction</div>
	  </div>
	  <div class="oointerface">
	    <div class="interfacename">IDisposable</div>
	  </div>
	</td>
    </tr>
    </table>

	
	  <h4>Thread Safety</h4>
	  <p>Any public static (Shared in Visual Basic) members of this type are safe for multithreaded operations.
Any instance members are not guaranteed to be thread safe.</p>
	<br />

	
	  <h4>Remarks</h4>

	  <p>The application creates a VirtuosoTransaction object by calling BeginTransaction on
the VirtuosoConnection object. All subsequent operations associated with the transaction (for example,
committing or aborting the transaction), are performed on the VirtuosoTransaction object.</p>

	<br />

	
	  <h4>Properties</h4>

	  
	    <h4>Connection</h4>

	    <p>Gets the VirtuosoConnection object associated with the transaction.</p>

	    
	      public
	      <span class="computeroutput">VirtuosoConnection</span>
	      Connection
	    

	    
	      <h4>Property Value</h4>
	      <p>The VirtuosoConnection object to associate with the transaction.</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>A single application may have multiple database connections, each with zero or more transactions.
This property enables you to determine the connection object associated with a particular transaction.</p>
	    <br />

	  <br />

	  
	    <h4>IsolationLevel</h4>

	    <p>Specifies the IsolationLevel for this transaction</p>

	    
	      public
	      <span class="computeroutput">IsolationLevel</span>
	      IsolationLevel
	    

	    
	      <h4>Property Value</h4>
	      <p>The IsolationLevel for this transaction.</p>
	    <br />

	    
	      <h4>Implements</h4>
	      <p>IDbTransaction.IsolationLevel</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>Parallel transactions are not supported. Therefore, the IsolationLevel applies
to the entire transaction.</p>
	    <br />

	  <br />

	<br />

	
	  <h4>Methods</h4>

	  
	    <h4>Commit Method</h4>

	    <p>Commits the database transaction.</p>

	    
	      public
	      
	      Commit
	      
	    

	  <br />

	  
	    <h4>Dispose Method</h4>

	    <p>Releases the unmanaged resources used by the VirtuosoTransaction and optionally
releases the managed resources.</p>

	    
	      public
	      
	      Dispose
	      
	    

	    
	      <h4>Implements</h4>
	      <p>IDisposable.Dispose</p>
	    <br />

	  <br />

	  
	    <h4>Rollback Method</h4>

	    <p>Rolls back a transaction from a pending state.</p>

	    
	      public
	      
	      Rollback
	      
	    

	    
	      <h4>Implements</h4>
	      <p>IDbTransaction.Rollback</p>
	    <br />

	    
	      <h4>Remarks</h4>
	      <p>The transaction can be rolled back only from a pending state
(after BeginTransaction has been called, but before Commit is called).</p>
	    <br />

	  <br />

	<br />

      <br />
      <br />

  <table border="0" width="90%" id="navbarbottom">
    <tr>
        <td align="left" width="33%">
          <a href="accessinterfaces.html" title="Data Access Interfaces">Previous</a>
          <br />Contents of Data Access Interfaces</td>
     <td align="center" width="34%">
          <a href="accessinterfaces.html">Chapter Contents</a>
     </td>
        <td align="right" width="33%">
          <a href="isql.html" title="Interactive SQL Utility">Next</a>
          <br />Interactive SQL Utility</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>