<?xml version="1.0" encoding="utf-8"?>
<Type Name="OdbcCommandBuilder" FullName="System.Data.Odbc.OdbcCommandBuilder">
  <TypeSignature Language="C#" Value="public sealed class OdbcCommandBuilder : System.Data.Common.DbCommandBuilder" />
  <AssemblyInfo>
    <AssemblyName>System.Data</AssemblyName>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Data.Common.DbCommandBuilder</BaseTypeName>
  </Base>
  <Interfaces />
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>The <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> does not automatically generate the SQL statements required to reconcile changes made to a <see cref="T:System.Data.DataSet" /> associated with the data source. However, you can create an <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> object that generates SQL statements for single-table updates by setting the <see cref="P:System.Data.Odbc.OdbcDataAdapter.SelectCommand" /> property of the <see cref="T:System.Data.Odbc.OdbcDataAdapter" />. The <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> then generates any additional SQL statements that you do not set.</para>
      <para>The relationship between an <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> and its corresponding <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> is always one-to-one. To create this correspondence, you set the <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> property of the <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> object. This causes the <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> to register itself as a listener, which produces the output of <see cref="E:System.Data.Odbc.OdbcDataAdapter.RowUpdating" /> events that affect the <see cref="T:System.Data.DataSet" />.</para>
      <para>To generate INSERT, UPDATE, or DELETE statements, the <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> uses the <see cref="P:System.Data.Odbc.OdbcDataAdapter.SelectCommand" /> property to retrieve a required set of metadata. If you change the value of <see cref="P:System.Data.Odbc.OdbcDataAdapter.SelectCommand" /> after the metadata has been retrieved, such as after the first update, you should then call the <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> method to update the metadata.</para>
      <block subset="none" type="note">
        <para>If the SELECT statement assigned to the <see cref="P:System.Data.Odbc.OdbcDataAdapter.SelectCommand" /> property uses aliased column names, the resulting INSERT, UPDATE, and DELETE statements may be inaccurate or fail. If the underlying ODBC driver cannot provide the appropriate base column name for the alias column name (using the SQL_DESC_BASE_COLUMN_NAME value of SQLColAttribute), the alias name could be used in the generated INSERT, UPDATE, and DELETE statements. For example, the Microsoft ODBC Driver for Oracle returns the alias name as the base column name. Therefore, the generated INSERT, UPDATE, and DELETE statements would cause errors.</para>
      </block>
      <para>The <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> also uses the <see cref="P:System.Data.Odbc.OdbcCommand.Connection" />, <see cref="P:System.Data.Odbc.OdbcCommand.CommandTimeout" />, and <see cref="P:System.Data.Odbc.OdbcCommand.Transaction" /> properties referenced by the <see cref="P:System.Data.Odbc.OdbcDataAdapter.SelectCommand" />. The user should call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if one or more of these properties are modified, or if the value of the <see cref="P:System.Data.Odbc.OdbcDataAdapter.SelectCommand" /> property itself is changed. Otherwise the <see cref="P:System.Data.Odbc.OdbcDataAdapter.InsertCommand" />, <see cref="P:System.Data.Odbc.OdbcDataAdapter.UpdateCommand" />, and <see cref="P:System.Data.Odbc.OdbcDataAdapter.DeleteCommand" /> properties retain their previous values.</para>
      <para>If you call <see cref="M:System.ComponentModel.Component.Dispose" />, the <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> is disassociated from the <see cref="T:System.Data.Odbc.OdbcDataAdapter" />, and the generated commands are no longer used.</para>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Automatically generates single-table commands that are used to reconcile changes made to a <see cref="T:System.Data.DataSet" /> with the associated data source. This class cannot be inherited.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public OdbcCommandBuilder ();" />
      <MemberType>Constructor</MemberType>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The base constructor initializes all fields to their default values.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> class.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public OdbcCommandBuilder (System.Data.Odbc.OdbcDataAdapter adapter);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="adapter" Type="System.Data.Odbc.OdbcDataAdapter" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> registers itself as a listener for <see cref="E:System.Data.Odbc.OdbcDataAdapter.RowUpdating" /> events that are generated by the <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> specified in this property.</para>
          <para>When you create a new instance of <see cref="T:System.Data.Odbc.OdbcCommandBuilder" />, any existing <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> associated with this <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> is released.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Initializes a new instance of the <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> class with the associated <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> object.</para>
        </summary>
        <param name="adapter">
          <attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> object to associate with this <see cref="T:System.Data.Odbc.OdbcCommandBuilder" />.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="ApplyParameterInfo">
      <MemberSignature Language="C#" Value="protected override void ApplyParameterInfo (System.Data.Common.DbParameter parameter, System.Data.DataRow row, System.Data.StatementType statementType, bool whereClause);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameter" Type="System.Data.Common.DbParameter" />
        <Parameter Name="row" Type="System.Data.DataRow" />
        <Parameter Name="statementType" Type="System.Data.StatementType" />
        <Parameter Name="whereClause" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="parameter">To be added.</param>
        <param name="row">To be added.</param>
        <param name="statementType">To be added.</param>
        <param name="whereClause">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="DataAdapter">
      <MemberSignature Language="C#" Value="public System.Data.Odbc.OdbcDataAdapter DataAdapter { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DefaultValue(null)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.Data.Odbc.OdbcDataAdapter</ReturnType>
      </ReturnValue>
      <Docs>
        <value>To be added.</value>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> registers itself as a listener for <see cref="E:System.Data.Odbc.OdbcDataAdapter.RowUpdating" /> events that are generated by the <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> specified in this property.</para>
          <para>When you create a new instance of <see cref="T:System.Data.Odbc.OdbcCommandBuilder" />, any existing <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> associated with this <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> is released.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets or sets an <see cref="T:System.Data.Odbc.OdbcDataAdapter" /> object for which this <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> object will generate SQL statements.</para>
        </summary>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="DeriveParameters">
      <MemberSignature Language="C#" Value="public static void DeriveParameters (System.Data.Odbc.OdbcCommand command);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="command" Type="System.Data.Odbc.OdbcCommand" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>
            <see cref="M:System.Data.Odbc.OdbcCommandBuilder.DeriveParameters(System.Data.Odbc.OdbcCommand)" /> overwrites any existing parameter information for the <see cref="T:System.Data.Odbc.OdbcCommand" />.</para>
          <para>
            <see cref="M:System.Data.Odbc.OdbcCommandBuilder.DeriveParameters(System.Data.Odbc.OdbcCommand)" /> requires an additional call to the data source 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.</para>
          <para>You can only use <see cref="M:System.Data.Odbc.OdbcCommandBuilder.DeriveParameters(System.Data.Odbc.OdbcCommand)" /> with stored procedures. You cannot use <see cref="M:System.Data.Odbc.OdbcCommandBuilder.DeriveParameters(System.Data.Odbc.OdbcCommand)" /> to populate the <see cref="T:System.Data.Odbc.OdbcParameterCollection" /> with arbitrary Transact-SQL statements, such as a parameterized SELECT statement.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Retrieves parameter information from the stored procedure specified in the <see cref="T:System.Data.Odbc.OdbcCommand" /> and populates the <see cref="P:System.Data.Odbc.OdbcCommand.Parameters" /> collection of the specified <see cref="T:System.Data.Odbc.OdbcCommand" /> object.</para>
        </summary>
        <param name="command">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.Odbc.OdbcCommand" /> referencing the stored procedure from which the parameter information is to be derived. The derived parameters are added to the <see cref="P:System.Data.Odbc.OdbcCommand.Parameters" /> collection of the <see cref="T:System.Data.Odbc.OdbcCommand" />. </param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="Dispose">
      <MemberSignature Language="C#" Value="protected override void Dispose (bool disposing);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="disposing" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="disposing">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetDeleteCommand">
      <MemberSignature Language="C#" Value="public System.Data.Odbc.OdbcCommand GetDeleteCommand ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Odbc.OdbcCommand</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You can use the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Odbc.OdbcCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" /> and modify the <see cref="P:System.Data.Odbc.OdbcCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.Odbc.OdbcDataAdapter" />.</para>
          <para>After the SQL statement is first generated, you must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" /> will be using information from the previous statement, which might not be correct. The SQL statements are first generated when the application calls either <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform deletions at the data source.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform deletions.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetDeleteCommand">
      <MemberSignature Language="C#" Value="public System.Data.Odbc.OdbcCommand GetDeleteCommand (bool useColumnsForParameterNames);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.Odbc.OdbcCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="useColumnsForParameterNames" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You can use the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Odbc.OdbcCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" /> and modify the <see cref="P:System.Data.Odbc.OdbcCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.Odbc.OdbcDataAdapter" />.</para>
          <para>After the SQL statement is first generated, you must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" /> will be using information from the previous statement, which might not be correct. The SQL statements are first generated when the application calls either <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetDeleteCommand" />.</para>
          <para>The default behavior, when generating parameter names, is to use @p1, @p2, and so on for the various parameters. Passing true for the <paramref name="useColumnsForParameterNames" /> parameter lets you force the <see cref="T:System.Data.Odbc.OdbcCommandBuilder" /> to generate parameters based on the column names instead. This succeeds only if the following conditions are met:</para>
          <list type="bullet">
            <item>
              <para>The <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNameMaxLength" /> has been specified, and its length is equal to or greater than the generated parameter name.</para>
            </item>
            <item>
              <para>The generated parameter name meets the criteria specified in the <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNamePattern" /> regular expression.</para>
            </item>
            <item>
              <para>A <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterMarkerFormat" /> is specified.</para>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform deletions at the data source.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform deletions.</para>
        </returns>
        <param name="useColumnsForParameterNames">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, generate parameter names matching column names, if it is possible. If false, generate @p1, @p2, and so on.</param>
      </Docs>
    </Member>
    <Member MemberName="GetInsertCommand">
      <MemberSignature Language="C#" Value="public System.Data.Odbc.OdbcCommand GetInsertCommand ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Odbc.OdbcCommand</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You can use the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetInsertCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Odbc.OdbcCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetInsertCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetInsertCommand" /> and modify the <see cref="P:System.Data.Odbc.OdbcCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.Odbc.OdbcDataAdapter" />.</para>
          <para>After the SQL statement is first generated, you must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.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 <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetInsertCommand" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform insertions at the data source.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform insertions.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetInsertCommand">
      <MemberSignature Language="C#" Value="public System.Data.Odbc.OdbcCommand GetInsertCommand (bool useColumnsForParameterNames);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.Odbc.OdbcCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="useColumnsForParameterNames" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You can use the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetInsertCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Odbc.OdbcCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetInsertCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetInsertCommand" /> and modify the <see cref="P:System.Data.Odbc.OdbcCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.Odbc.OdbcDataAdapter" />.</para>
          <para>After the SQL statement is first generated, you must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetInsertCommand" /> will be using information from the previous statement, which might not be correct. The SQL statements are first generated when the application calls either <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetInsertCommand" />.</para>
          <para>The default behavior, when generating parameter names, is to use @p1, @p2, and so on for the various parameters. Passing true for the <paramref name="useColumnsForParameterNames" /> parameter lets you force the <see cref="T:System.Data.Common.DbCommandBuilder" /> to generate parameters based on the column names instead. This succeeds only if the following conditions are met:</para>
          <list type="bullet">
            <item>
              <para>The <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNameMaxLength" /> has been specified, and its length is equal to or greater than the generated parameter name.</para>
            </item>
            <item>
              <para>The generated parameter name meets the criteria specified in the <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNamePattern" /> regular expression.</para>
            </item>
            <item>
              <para>A <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterMarkerFormat" /> is specified.</para>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform insertions at the data source.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform insertions.</para>
        </returns>
        <param name="useColumnsForParameterNames">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, generate parameter names matching column names, if it is possible. If false, generate @p1, @p2, and so on.</param>
      </Docs>
    </Member>
    <Member MemberName="GetParameterName">
      <MemberSignature Language="C#" Value="protected override string GetParameterName (int parameterOrdinal);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameterOrdinal" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="parameterOrdinal">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetParameterName">
      <MemberSignature Language="C#" Value="protected override string GetParameterName (string parameterName);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameterName" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="parameterName">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetParameterPlaceholder">
      <MemberSignature Language="C#" Value="protected override string GetParameterPlaceholder (int parameterOrdinal);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="parameterOrdinal" Type="System.Int32" />
      </Parameters>
      <Docs>
        <param name="parameterOrdinal">To be added.</param>
        <summary>To be added.</summary>
        <returns>To be added.</returns>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetUpdateCommand">
      <MemberSignature Language="C#" Value="public System.Data.Odbc.OdbcCommand GetUpdateCommand ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Data.Odbc.OdbcCommand</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You can use the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetUpdateCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Odbc.OdbcCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetUpdateCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetUpdateCommand" /> and modify the <see cref="P:System.Data.Odbc.OdbcCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.Odbc.OdbcDataAdapter" />.</para>
          <para>After the SQL statement is first generated, you must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.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 <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetUpdateCommand" />.</para>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform updates at the data source.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform updates.</para>
        </returns>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="GetUpdateCommand">
      <MemberSignature Language="C#" Value="public System.Data.Odbc.OdbcCommand GetUpdateCommand (bool useColumnsForParameterNames);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Data.Odbc.OdbcCommand</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="useColumnsForParameterNames" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <remarks>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>You can use the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetUpdateCommand" /> method for informational or troubleshooting purposes because it returns the <see cref="T:System.Data.Odbc.OdbcCommand" /> object to be executed.</para>
          <para>You can also use <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetUpdateCommand" /> as the basis of a modified command. For example, you might call <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetUpdateCommand" /> and modify the <see cref="P:System.Data.Odbc.OdbcCommand.CommandTimeout" /> value, and then explicitly set that on the <see cref="T:System.Data.Odbc.OdbcDataAdapter" />.</para>
          <para>After the SQL statement is first generated, you must explicitly call <see cref="M:System.Data.Common.DbCommandBuilder.RefreshSchema" /> if it changes the statement in any way. Otherwise, the <see cref="M:System.Data.Odbc.OdbcCommandBuilder.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 <see cref="M:System.Data.Common.DbDataAdapter.Update(System.Data.DataSet)" /> or <see cref="M:System.Data.Odbc.OdbcCommandBuilder.GetUpdateCommand" />.</para>
          <para>The default behavior, when generating parameter names, is to use @p1, @p2, and so on for the various parameters. Passing true for the <paramref name="useColumnsForParameterNames" /> parameter lets you force the <see cref="T:System.Data.Common.DbCommandBuilder" /> to generate parameters based on the column names instead. This succeeds only if the following conditions are met:</para>
          <list type="bullet">
            <item>
              <para>The <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNameMaxLength" /> has been specified, and its length is equal to or greater than the generated parameter name.</para>
            </item>
            <item>
              <para>The generated parameter name meets the criteria specified in the <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterNamePattern" /> regular expression.</para>
            </item>
            <item>
              <para>A <see cref="F:System.Data.Common.DbMetaDataColumnNames.ParameterMarkerFormat" /> is specified.</para>
            </item>
          </list>
        </remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Gets the automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform updates at the data source.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The automatically generated <see cref="T:System.Data.Odbc.OdbcCommand" /> object required to perform updates.</para>
        </returns>
        <param name="useColumnsForParameterNames">
          <attribution license="cc4" from="Microsoft" modified="false" />If true, generate parameter names matching column names, if it is possible. If false, generate @p1, @p2, and so on.</param>
      </Docs>
    </Member>
    <Member MemberName="QuoteIdentifier">
      <MemberSignature Language="C#" Value="public override string QuoteIdentifier (string unquotedIdentifier);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="unquotedIdentifier" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier. This includes correctly escaping any embedded quotes in the identifier.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The quoted version of the identifier. Embedded quotes within the identifier are correctly escaped.</para>
        </returns>
        <param name="unquotedIdentifier">
          <attribution license="cc4" from="Microsoft" modified="false" />The original unquoted identifier.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="QuoteIdentifier">
      <MemberSignature Language="C#" Value="public string QuoteIdentifier (string unquotedIdentifier, System.Data.Odbc.OdbcConnection connection);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="unquotedIdentifier" Type="System.String" />
        <Parameter Name="connection" Type="System.Data.Odbc.OdbcConnection" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Given an unquoted identifier in the correct catalog case, returns the correct quoted form of that identifier. This includes correctly escaping any embedded quotes in the identifier.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The quoted version of the identifier. Embedded quotes within the identifier are correctly escaped.</para>
        </returns>
        <param name="unquotedIdentifier">
          <attribution license="cc4" from="Microsoft" modified="false" />The original unquoted identifier.</param>
        <param name="connection">
          <attribution license="cc4" from="Microsoft" modified="false" />When a connection is passed, causes the managed wrapper to get the quote character from the ODBC driver, calling SQLGetInfo(SQL_IDENTIFIER_QUOTE_CHAR). When no connection is passed, the string is quoted using values from <see cref="P:System.Data.Common.DbCommandBuilder.QuotePrefix" /> and <see cref="P:System.Data.Common.DbCommandBuilder.QuoteSuffix" />.</param>
      </Docs>
    </Member>
    <Member MemberName="QuotePrefix">
      <MemberSignature Language="C#" Value="public string QuotePrefix { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(Visibility=System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(Browsable=False)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="QuoteSuffix">
      <MemberSignature Language="C#" Value="public string QuoteSuffix { set; get; }" />
      <MemberType>Property</MemberType>
      <Attributes>
        <Attribute>
          <AttributeName>System.ComponentModel.DesignerSerializationVisibility(Visibility=System.ComponentModel.DesignerSerializationVisibility.Hidden)</AttributeName>
        </Attribute>
        <Attribute>
          <AttributeName>System.ComponentModel.Browsable(Browsable=False)</AttributeName>
        </Attribute>
      </Attributes>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="RefreshSchema">
      <MemberSignature Language="C#" Value="public void RefreshSchema ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="SetRowUpdatingHandler">
      <MemberSignature Language="C#" Value="protected override void SetRowUpdatingHandler (System.Data.Common.DbDataAdapter adapter);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="adapter" Type="System.Data.Common.DbDataAdapter" />
      </Parameters>
      <Docs>
        <param name="adapter">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="UnquoteIdentifier">
      <MemberSignature Language="C#" Value="public override string UnquoteIdentifier (string quotedIdentifier);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="quotedIdentifier" Type="System.String" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <since version=".NET 2.0" />
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Given a quoted identifier, returns the correct unquoted form of that identifier, including correctly unescaping any embedded quotes in the identifier.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The unquoted identifier, with embedded quotes correctly unescaped.</para>
        </returns>
        <param name="quotedIdentifier">
          <attribution license="cc4" from="Microsoft" modified="false" />The identifier that will have its embedded quotes removed.</param>
      </Docs>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
    </Member>
    <Member MemberName="UnquoteIdentifier">
      <MemberSignature Language="C#" Value="public string UnquoteIdentifier (string quotedIdentifier, System.Data.Odbc.OdbcConnection connection);" />
      <MemberType>Method</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="quotedIdentifier" Type="System.String" />
        <Parameter Name="connection" Type="System.Data.Odbc.OdbcConnection" />
      </Parameters>
      <Docs>
        <remarks>To be added.</remarks>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Given a quoted identifier, returns the correct unquoted form of that identifier, including correctly unescaping any embedded quotes in the identifier.</para>
        </summary>
        <returns>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>The unquoted identifier, with embedded quotes correctly unescaped.</para>
        </returns>
        <param name="quotedIdentifier">
          <attribution license="cc4" from="Microsoft" modified="false" />The identifier that will have its embedded quotes removed.</param>
        <param name="connection">
          <attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Data.Odbc.OdbcConnection" />.</param>
      </Docs>
    </Member>
  </Members>
</Type>