List:Commits« Previous MessageNext Message »
From:Reggie Burnett Date:July 22 2010 7:09pm
Subject:bzr commit into connector-net-trunk branch (reggie.burnett:899)
View as plain text  
#At file:///C:/work/connector-net/trunk/ based on revid:reggie.burnett@stripped

  899 Reggie Burnett	2010-07-22
      sync-up with docs team content

    removed:
      Documentation/Users Guide/connector-net-programming-connection-options.aml
    added:
      Documentation/Users Guide/connector-net-connection-options.aml
      Documentation/Users Guide/media/connector-net-sql-editor-new-file-dialog.png
      Documentation/Users Guide/media/connector-net-sql-editor-query.png
    modified:
      Documentation/Users Guide/connector-net-core.aml
      Documentation/Users Guide/connector-net-install.aml
      Documentation/Users Guide/connector-net-programming.aml
      Documentation/Users Guide/connector-net-support.aml
      Documentation/Users Guide/connector-net-tutorials.aml
      Documentation/Users Guide/connector-net-versions.aml
      Documentation/Users Guide/connector-net-visual-studio.aml
      Documentation/help.shfbproj
=== added file 'Documentation/Users Guide/connector-net-connection-options.aml'
=== added file 'Documentation/Users Guide/connector-net-connection-options.aml'
--- a/Documentation/Users Guide/connector-net-connection-options.aml	1970-01-01 00:00:00 +0000
+++ b/Documentation/Users Guide/connector-net-connection-options.aml	2010-07-22 19:09:34 +0000
@@ -0,0 +1,878 @@
+<topic id="c26b6c1a-1652-4d9d-ac74-96cee9531a3b" revisionNumber="1">
+  <developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <section address="connector-net-connection-options">
+      <title>Connector/NET Connection String Options Reference</title>
+      <content>
+        <table>
+          <row>
+            <entry>
+              <para>Name</para>
+            </entry>
+            <entry>
+              <para>Default</para>
+            </entry>
+            <entry>
+              <para>Description</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Allow Batch</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>true</para>
+            </entry>
+            <entry>
+              <para>When true, multiple SQL statements can be sent with one command
+            execution. -Note- Starting with MySQL 4.1.1, batch
+            statements should be separated by the server-defined
+            separator character. Commands sent to earlier versions of
+            MySQL should be separated with ';'.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Allow User Variables</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>Setting this to <literal>true</literal> indicates that the provider
+            expects user variables in the SQL. This option was added in
+            Connector/NET version 5.2.2.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Allow Zero Datetime</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>If set to <literal>True</literal>,
+            <literal>MySqlDataReader.GetValue()</literal> will return a
+            <literal>MySqlDateTime</literal> object for date or datetime
+            columns that have illegal values, such as zero datetime
+            values, and a <literal>System.DateTime</literal> object for
+            legal values. If set to <literal>False</literal> (the
+            default setting) it will cause a
+            <literal>System.DateTime</literal> object to be returned for
+            all legal values and an exception to be thrown for illegal
+            values, such as zero datetime values.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>AutoEnlist</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>true</para>
+            </entry>
+            <entry>
+              <para>If <literal>AutoEnlist</literal> is set to <literal>true</literal>,
+            which is the default, a connection opened using
+            <literal>TransactionScope</literal> participates in this
+            scope, it commits when the scope commits and rolls back if
+            <literal>TransactionScope</literal> does not commit.
+            However, this feature is considered security sensitive and
+            therefore cannot be used in a medium trust environment.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>BlobAsUTF8ExcludePattern</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>null</para>
+            </entry>
+            <entry>
+              <para>
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>BlobAsUTF8IncludePattern</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>null</para>
+            </entry>
+            <entry>
+              <para>
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>CertificateFile</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>null</para>
+            </entry>
+            <entry>
+              <para>This option specifies the path to a certificate file in PFX format. For
+            an example of usage see
+            <link xlink:href="34e3033f-b986-4073-95c8-945f73aa79b0#connector-net-tutorials-ssl">Tutorial: Using SSL with </link>. Was
+            introduced with 6.2.1.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>CertificatePassword</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>null</para>
+            </entry>
+            <entry>
+              <para>This option enables you to specify a password which is used in
+            conjunction with a certificate specified using the option
+            <literal>CertificateFile</literal>. For an example of usage
+            see <link xlink:href="34e3033f-b986-4073-95c8-945f73aa79b0#connector-net-tutorials-ssl">Tutorial: Using SSL with </link>. Was
+            introduced with 6.2.1.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Certificate Store Location</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>null</para>
+            </entry>
+            <entry>
+              <para>This option enables you to access a certificate held in a personal
+            store, rather than use a certificate file and password
+            combination. For an example of usage see
+            <link xlink:href="34e3033f-b986-4073-95c8-945f73aa79b0#connector-net-tutorials-ssl">Tutorial: Using SSL with </link>. Was
+            introduced with 6.2.1.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Certificate Thumbprint</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>null</para>
+            </entry>
+            <entry>
+              <para>This option enables you to specify a certificate thumbprint to ensure
+            correct identifcation of a certificate contained within a
+            personal store. For an example of usage see
+            <link xlink:href="34e3033f-b986-4073-95c8-945f73aa79b0#connector-net-tutorials-ssl">Tutorial: Using SSL with </link>. Was
+            introduced with 6.2.1.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>CharSet</literal>, <literal>Character Set</literal></para>
+            </entry>
+            <entry>
+              <para>
+              </para>
+            </entry>
+            <entry>
+              <para>Specifies the character set that should be used to encode all queries
+            sent to the server. Resultsets are still returned in the
+            character set of the data returned.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Connect Timeout</literal>, <literal>Connection
+            Timeout</literal></para>
+            </entry>
+            <entry>
+              <para>15</para>
+            </entry>
+            <entry>
+              <para>The length of time (in seconds) to wait for a connection to the server
+            before terminating the attempt and generating an error.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Connection Reset</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Convert Zero Datetime</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>True to have <literal>MySqlDataReader.GetValue()</literal> and
+            <literal>MySqlDataReader.GetDateTime()</literal> return
+            DateTime.MinValue for date or datetime columns that have
+            illegal values.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Default Command Timeout</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>30</para>
+            </entry>
+            <entry>
+              <para>Sets the default value of the command timeout to be used. This does not
+            supercede the individual command timeout property on an
+            individual command object. If you set the command timeout
+            property, that will be used. This option was added in
+            Connector/NET 5.1.4</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Encrypt</literal>, <literal>UseSSL</literal></para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>For Connector/NET 5.0.3 and later, when <literal>true</literal>, SSL
+            encryption is used for all data sent between the client and
+            server if the server has a certificate installed. Recognized
+            values are <literal>true</literal>,
+            <literal>false</literal>, <literal>yes</literal>, and
+            <literal>no</literal>. In versions before 5.0.3, this option
+            had no effect. From version 6.2.1 this option is deprecated
+            and is replaced by <literal>SSL Mode</literal>. However, the
+            option is still supported if used. If this option is set to
+            true it is equivalent to <literal>SSL Mode =
+            Preferred</literal>.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>FunctionsReturnString</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>This will cause the connector to return binary/varbinary values as
+            strings, if they do not have a tablename in the metadata.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Host</literal>, <literal>Server</literal>, <literal>Data
+            Source</literal>, <literal>DataSource</literal>,
+            <literal>Address</literal>, <literal>Addr</literal>,
+            <literal>Network Address</literal></para>
+            </entry>
+            <entry>
+              <para>localhost</para>
+            </entry>
+            <entry>
+              <para>The name or network address of the instance of MySQL to which to
+            connect. Multiple hosts can be specified separated by &amp;.
+            This can be useful where multiple MySQL servers are
+            configured for replication and you are not concerned about
+            the precise server you are connecting to. No attempt is made
+            by the provider to synchronize writes to the database so
+            care should be taken when using this option. In Unix
+            environment with Mono, this can be a fully qualified path to
+            MySQL socket file name. With this configuration, the Unix
+            socket will be used instead of TCP/IP socket. Currently only
+            a single socket name can be given so accessing MySQL in a
+            replicated environment using Unix sockets is not currently
+            supported.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Ignore Prepare</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>true</para>
+            </entry>
+            <entry>
+              <para>When true, instructs the provider to ignore any calls to
+            <literal>MySqlCommand.Prepare()</literal>. This option is
+            provided to prevent issues with corruption of the statements
+            when use with server side prepared statements. If you want
+            to use server-side prepare statements, set this option to
+            false. This option was added in Connector/NET 5.0.3 and
+            Connector/NET 1.0.9.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Initial Catalog</literal>, <literal>Database</literal></para>
+            </entry>
+            <entry>
+              <para>mysql</para>
+            </entry>
+            <entry>
+              <para>The name of the database to use intially</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Interactive, InteractiveSession</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>If set to true the client is interactive. An interactive client is one
+            where the server variable
+            <literal>CLIENT_INTERACTIVE</literal> is set. If an
+            interactive client is set, the
+            <literal>wait_timeout</literal> variable is set to the value
+            of <literal>interactive_timeout</literal>. The client will
+            then timeout after this period of inactivity. More details
+            can be found in the server manual
+            <link xlink:href="server-system-variables"></link>.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Logging</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>When true, various pieces of information is output to any configured
+            TraceListeners. See
+            <link xlink:href="8b7d06e8-0177-4dd0-acca-f9c9caaa1072#connector-net-programming-tracing">Using the  Trace Source Object</link> for
+            further details.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Old Guids</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>This option was introduced in Connector/NET 6.1.1. The backend
+            representation of a GUID type was changed from
+            <literal>BINARY(16)</literal> to
+            <literal>CHAR(36)</literal>. This was done to allow
+            developers to use the server function
+            <literal>UUID()</literal> to populate a GUID table -
+            <literal>UUID()</literal> generates a 36-character string.
+            Developers of older applications can add 'Old Guids=true' to
+            the connection string in order to use a GUID of data type
+            <literal>BINARY(16)</literal>.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Old Syntax</literal>, <literal>OldSyntax</literal></para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>This option was deprecated in Connector/NET 5.2.2. All code should now
+            be written using the '@' symbol as the parameter marker.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Password</literal>, <literal>pwd</literal></para>
+            </entry>
+            <entry>
+              <para>
+              </para>
+            </entry>
+            <entry>
+              <para>The password for the MySQL account being used.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Persist Security Info</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>When set to <literal>false</literal> or <literal>no</literal> (strongly
+            recommended), 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. Recognized values are
+            <literal>true</literal>, <literal>false</literal>,
+            <literal>yes</literal>, and <literal>no</literal>.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Pipe Name</literal>, <literal>Pipe</literal></para>
+            </entry>
+            <entry>
+              <para>mysql</para>
+            </entry>
+            <entry>
+              <para>When set to the name of a named pipe, the
+            <literal>MySqlConnection</literal> will attempt to connect
+            to MySQL on that named pipe.This settings only applies to
+            the Windows platform.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Port</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>3306</para>
+            </entry>
+            <entry>
+              <para>The port MySQL is using to listen for connections. This value is ignored
+            if Unix socket is used.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Procedure Cache Size</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>25</para>
+            </entry>
+            <entry>
+              <para>Sets the size of the stored procedure cache. By default, Connector/NET
+            will store the metadata (input/output datatypes) about the
+            last 25 stored procedures used. To disable the stored
+            procedure cache, set the value to zero (0). This option was
+            added in Connector/NET 5.0.2 and Connector/NET 1.0.9.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Protocol</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>socket</para>
+            </entry>
+            <entry>
+              <para>Specifies the type of connection to make to the server. Values can be:
+            <literal>socket</literal> or <literal>tcp</literal> for a
+            socket connection, <literal>pipe</literal> for a named pipe
+            connection, <literal>unix</literal> for a Unix socket
+            connection, <literal>memory</literal> to use MySQL shared
+            memory.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Respect Binary Flags</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>true</para>
+            </entry>
+            <entry>
+              <para>Setting this option to <literal>false</literal> means that Connector/NET
+            will ignore a column's binary flags as set by the server.
+            This option was added in Connector/NET version 5.1.3.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Shared Memory Name</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>MYSQL</para>
+            </entry>
+            <entry>
+              <para>The name of the shared memory object to use for communication if the
+            connection protocol is set to memory.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Sql Server Mode</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>Allow SQL Server syntax. When set to <literal>true</literal> enables
+            Connector/NET to support square brackets around symbols
+            instead of backticks. This enables Visual Studio wizards
+            that bracket symbols with [] to work with Connector/NET.
+            This option incurs a performance hit, so should only be used
+            if necessary. This option was added in version 6.3.1.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>SSL Mode</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>None</para>
+            </entry>
+            <entry>
+              <para>This option has the following values:
+
+            <list class="bullet"><listItem><para><legacyBold>None</legacyBold> - do not use
+                  SSL.
+                </para></listItem><listItem><para><legacyBold>Preferred</legacyBold> - use SSL
+                  if the server supports it, but allow connection in all
+                  cases.
+                </para></listItem><listItem><para><legacyBold>Required</legacyBold> - Always use
+                  SSL. Deny connection if server does not support SSL.
+                </para></listItem><listItem><para><legacyBold>VerifyCA</legacyBold> - Always use
+                  SSL. Validate the CA but tolerate name mismatch.
+                </para></listItem><listItem><para><legacyBold>VerifyFull</legacyBold> - Always
+                  use SSL. Fail if the host name is not correct.
+                </para></listItem></list><para>
+              This option was introduced in  6.2.1.
+            </para></para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>TreatBlobsAsUTF8</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Treat Tiny As Boolean</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>true</para>
+            </entry>
+            <entry>
+              <para>Setting this value to <literal>false</literal> indicates that
+            <literal>TINYINT(1)</literal> will be treated as an
+            <literal>INT</literal>. See also
+            <link xlink:href="numeric-type-overview"></link> for a further
+            explanation of the <literal>TINYINT</literal>
+            and <literal>BOOL</literal> data types.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Use Affected Rows</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>When <literal>true</literal> the connection will report changed rows
+            instead of found rows. This option was added in
+            Connector/NET version 5.2.6.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Use Procedure Bodies</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>true</para>
+            </entry>
+            <entry>
+              <para>When set to <literal>true</literal>, the default value,  expects
+            the body of the procedure to be viewable. This enables it to
+            determine the parameter types and order. The option should
+            be set to <literal>false</literal> when the user connecting
+            to the database does not have the
+            <literal>SELECT</literal> privileges for the
+            <literal>mysql.proc</literal> (stored procedures) table, or
+            cannot view <literal>I_S.ROUTINES</literal>. In this case,
+             will not be able to determine the types and order of
+            the parameters, and must be alerted to this fact by setting
+            this option to <literal>false</literal>. When set to
+            <literal>false</literal>,  will not rely on this
+            information being available when the procedure is called.
+            Because  will not be able to determine this
+            information, you should explicitly set the types of all the
+            parameters before the call and the parameters should be
+            added to the command in the same order as they appear in the
+            procedure definition. This option was added in  5.0.4
+            and  1.0.10.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>User Id</literal>, <literal>Username</literal>,
+            <literal>Uid</literal>, <literal>User name</literal></para>
+            </entry>
+            <entry>
+              <para>
+              </para>
+            </entry>
+            <entry>
+              <para>The MySQL login account being used.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Use Compression</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>
+                <para>
+              Setting this option to <literal>true</literal> enables
+              compression of packets exchanged between the client and
+              the server. This exchange is defined by the MySQL
+              client-server protocol.
+            </para>
+                <para>
+              Compression is used if both client and server support ZLIB
+              compression, and the client has requested compression
+              using this option.
+            </para>
+                <para>
+              A compressed packet header is: packet length (3 bytes),
+              packet number (1 byte), and Uncompressed Packet Length (3
+              bytes). The Uncompressed Packet Length is the number of
+              bytes in the original, uncompressed packet. If this is
+              zero then the data in this packet has not been compressed.
+              When the compression protocol is in use, either the client
+              or the server may compress packets. However, compression
+              will not occur if the compressed length is greater than
+              the original length. Thus, some packets will contain
+              compressed data while other packets will not.
+            </para>
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Use Usage Advisor</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Use Performance Monitor</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>
+              </para>
+            </entry>
+          </row>
+        </table>
+        <para>
+    The following table lists the valid names for connection pooling
+    values within the <literal>ConnectionString</literal>. For more
+    information about connection pooling, see Connection Pooling for the
+    MySQL Data Provider.
+  </para>
+        <table>
+          <row>
+            <entry>
+              <para>Name</para>
+            </entry>
+            <entry>
+              <para>Default</para>
+            </entry>
+            <entry>
+              <para>Description</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Cache Server Configuration</literal>,
+            <literal>CacheServerConfiguration</literal>,
+            <literal>CacheServerConfig</literal></para>
+            </entry>
+            <entry>
+              <para>false</para>
+            </entry>
+            <entry>
+              <para>Specifies whether server variables should be updated when a pooled
+            connection is returned. Turning this on will yield faster
+            opens but will also not catch any server changes made by
+            other connections.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Connection Lifetime</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>0</para>
+            </entry>
+            <entry>
+              <para>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
+            <literal>Connection Lifetime</literal>. This is useful in
+            clustered configurations to force load balancing between a
+            running server and a server just brought online. A value of
+            zero (0) causes pooled connections to have the maximum
+            connection timeout.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Max Pool Size</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>100</para>
+            </entry>
+            <entry>
+              <para>The maximum number of connections allowed in the pool.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Min Pool Size</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>0</para>
+            </entry>
+            <entry>
+              <para>The minimum number of connections allowed in the pool.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Pooling</literal>
+              </para>
+            </entry>
+            <entry>
+              <para>true</para>
+            </entry>
+            <entry>
+              <para>When <literal>true</literal>, the <literal>MySqlConnection</literal>
+            object is drawn from the appropriate pool, or if necessary,
+            is created and added to the appropriate pool. Recognized
+            values are <literal>true</literal>,
+            <literal>false</literal>, <literal>yes</literal>, and
+            <literal>no</literal>.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>
+                <literal>Reset Pooled Connections</literal>,
+            <literal>ResetConnections</literal>,
+            <literal>ResetPooledConnections</literal></para>
+            </entry>
+            <entry>
+              <para>true</para>
+            </entry>
+            <entry>
+              <para>Specifies whether a ping and a reset should be sent to the server before
+            a pooled connection is returned. Not resetting will yield
+            faster connection opens but also will not clear out session
+            items such as temp tables.</para>
+            </entry>
+          </row>
+        </table>
+      </content>
+    </section>
+  </developerConceptualDocument>
+</topic>
\ No newline at end of file

=== modified file 'Documentation/Users Guide/connector-net-core.aml'
--- a/Documentation/Users Guide/connector-net-core.aml	2009-12-15 21:58:48 +0000
+++ b/Documentation/Users Guide/connector-net-core.aml	2010-07-22 19:09:34 +0000
@@ -19,7 +19,7 @@
           <listItem>
             <para>
         Features provided by MySQL Server up to and including MySQL
-        Server version 5.4.
+        Server version 5.5.
       </para>
           </listItem>
           <listItem>
@@ -30,8 +30,8 @@
           </listItem>
           <listItem>
             <para>
-        Protocol compression which allows for compressing the data
-        stream between the client and server.
+        Protocol compression which enables compressing the data stream
+        between the client and server.
       </para>
           </listItem>
           <listItem>
@@ -78,6 +78,13 @@
       default.
     </para>
         </alert>
+        <para>
+     supports full versions of Visual Studio 2005, 2008, and 2010,
+    although certain features are only available in Visual Studio 2010
+    when using  version 6.3.2 and later. Note that  does not
+    currently support Express versions of Microsoft products, including
+    Microsoft Visual Web Developer.
+  </para>
         <para>
           <legacyBold>Key topics:</legacyBold>
         </para>

=== modified file 'Documentation/Users Guide/connector-net-install.aml'
--- a/Documentation/Users Guide/connector-net-install.aml	2009-09-08 17:05:09 +0000
+++ b/Documentation/Users Guide/connector-net-install.aml	2010-07-22 19:09:34 +0000
@@ -56,9 +56,9 @@
         <list class="ordered">
           <listItem>
             <para>
-            Double click on the MSI installer file extracted from the
-            Zip you downloaded. Click <math>Next</math> to
-            start the installation.
+            Double-click the MSI installer file extracted from the Zip
+            you downloaded. Click <math>Next</math> to start
+            the installation.
           </para>
           </listItem>
           <listItem>
@@ -393,7 +393,7 @@
       Bazaar is supported by any platform that supports Python, and is
       therefore compatible with any Linux, Unix, Windows or Mac OS X
       host. Instructions for downloading and installing Bazaar on the
-      different platforms are available on the Bazaar website.
+      different platforms are available on the Bazaar Web site.
     </para>
         <para>
       The most recent development source tree is available from our
@@ -439,8 +439,8 @@
             <para>
           A Microsoft Visual Studio 2005 solution file is available to
           build the connector, this is called
-          <legacyBold>MySQL-VS2005.sln</legacyBold>. Click on this file to
-          load the solution into Visual Studio.
+          <legacyBold>MySQL-VS2005.sln</legacyBold>. Click this file to load
+          the solution into Visual Studio.
         </para>
           </listItem>
           <listItem>

=== removed file 'Documentation/Users Guide/connector-net-programming-connection-options.aml'
--- a/Documentation/Users Guide/connector-net-programming-connection-options.aml	2009-12-15 21:58:48 +0000
+++ b/Documentation/Users Guide/connector-net-programming-connection-options.aml	1970-01-01 00:00:00 +0000
@@ -1,835 +0,0 @@
-<topic id="c26b6c1a-1652-4d9d-ac74-96cee9531a3b" revisionNumber="1">
-  <developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <section address="connector-net-programming-connection-options">
-      <title>Connector/NET Connection String Options Reference</title>
-      <content>
-        <table>
-          <row>
-            <entry>
-              <para>Name</para>
-            </entry>
-            <entry>
-              <para>Default</para>
-            </entry>
-            <entry>
-              <para>Description</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Allow Batch</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>true</para>
-            </entry>
-            <entry>
-              <para>When true, multiple SQL statements can be sent with one command
-            execution. -Note- Starting with MySQL 4.1.1, batch
-            statements should be separated by the server-defined
-            separator character. Commands sent to earlier versions of
-            MySQL should be separated with ';'.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Allow User Variables</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>Setting this to <literal>true</literal> indicates that the provider
-            expects user variables in the SQL. This option was added in
-            Connector/NET version 5.2.2.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Allow Zero Datetime</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>True to have MySqlDataReader.GetValue() return a MySqlDateTime for date
-            or datetime columns that have illegal values. False will
-            cause a <literal>System.DateTime</literal> object to be
-            returned for legal values and an exception will be thrown
-            for illegal values.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>AutoEnlist</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>true</para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>BlobAsUTF8ExcludePattern</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>null</para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>BlobAsUTF8IncludePattern</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>null</para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>CertificateFile</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>null</para>
-            </entry>
-            <entry>
-              <para>This option specifies the path to a certificate file in PFX format. For
-            an example of usage see
-            <link xlink:href="34e3033f-b986-4073-95c8-945f73aa79b0#connector-net-tutorials-ssl">Tutorial: Using SSL with </link>. Was
-            introduced with 6.2.1.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>CertificatePassword</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>null</para>
-            </entry>
-            <entry>
-              <para>This option allows you to specify a password which is used in
-            conjunction with a certificate specified using the option
-            <literal>CertificateFile</literal>. For an example of usage
-            see <link xlink:href="34e3033f-b986-4073-95c8-945f73aa79b0#connector-net-tutorials-ssl">Tutorial: Using SSL with </link>. Was
-            introduced with 6.2.1.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Certificate Store Location</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>null</para>
-            </entry>
-            <entry>
-              <para>This option allows you to access a certificate held in a personal store,
-            rather than use a certificate file and password combination.
-            For an example of usage see
-            <link xlink:href="34e3033f-b986-4073-95c8-945f73aa79b0#connector-net-tutorials-ssl">Tutorial: Using SSL with </link>. Was
-            introduced with 6.2.1.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Certificate Thumbprint</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>null</para>
-            </entry>
-            <entry>
-              <para>This option allows you to specify a certificate thumbprint to ensure
-            correct identifcation of a certificate contained within a
-            personal store. For an example of usage see
-            <link xlink:href="34e3033f-b986-4073-95c8-945f73aa79b0#connector-net-tutorials-ssl">Tutorial: Using SSL with </link>. Was
-            introduced with 6.2.1.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>CharSet</literal>, <literal>Character Set</literal></para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-            <entry>
-              <para>Specifies the character set that should be used to encode all queries
-            sent to the server. Resultsets are still returned in the
-            character set of the data returned.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Connect Timeout</literal>, <literal>Connection
-            Timeout</literal></para>
-            </entry>
-            <entry>
-              <para>15</para>
-            </entry>
-            <entry>
-              <para>The length of time (in seconds) to wait for a connection to the server
-            before terminating the attempt and generating an error.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Connection Reset</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Convert Zero Datetime</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>True to have <literal>MySqlDataReader.GetValue()</literal> and
-            <literal>MySqlDataReader.GetDateTime()</literal> return
-            DateTime.MinValue for date or datetime columns that have
-            illegal values.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Default Command Timeout</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>30</para>
-            </entry>
-            <entry>
-              <para>Sets the default value of the command timeout to be used. This does not
-            supercede the individual command timeout property on an
-            individual command object. If you set the command timeout
-            property, that will be used. This option was added in
-            Connector/NET 5.1.4</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Encrypt</literal>, <literal>UseSSL</literal></para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>For Connector/NET 5.0.3 and later, when <literal>true</literal>, SSL
-            encryption is used for all data sent between the client and
-            server if the server has a certificate installed. Recognized
-            values are <literal>true</literal>,
-            <literal>false</literal>, <literal>yes</literal>, and
-            <literal>no</literal>. In versions before 5.0.3, this option
-            had no effect. From version 6.2.1 this option is deprecated
-            and is replaced by <literal>SSL Mode</literal>. However, the
-            option is still supported if used. If this option is set to
-            true it is equivalent to <literal>SSL Mode =
-            Preferred</literal>.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>FunctionsReturnString</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>This will cause the connector to return binary/varbinary values as
-            strings, if they do not have a tablename in the metadata.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Host</literal>, <literal>Server</literal>, <literal>Data
-            Source</literal>, <literal>DataSource</literal>,
-            <literal>Address</literal>, <literal>Addr</literal>,
-            <literal>Network Address</literal></para>
-            </entry>
-            <entry>
-              <para>localhost</para>
-            </entry>
-            <entry>
-              <para>The name or network address of the instance of MySQL to which to
-            connect. Multiple hosts can be specified separated by &amp;.
-            This can be useful where multiple MySQL servers are
-            configured for replication and you are not concerned about
-            the precise server you are connecting to. No attempt is made
-            by the provider to synchronize writes to the database so
-            care should be taken when using this option. In Unix
-            environment with Mono, this can be a fully qualified path to
-            MySQL socket file name. With this configuration, the Unix
-            socket will be used instead of TCP/IP socket. Currently only
-            a single socket name can be given so accessing MySQL in a
-            replicated environment using Unix sockets is not currently
-            supported.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Ignore Prepare</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>true</para>
-            </entry>
-            <entry>
-              <para>When true, instructs the provider to ignore any calls to
-            <literal>MySqlCommand.Prepare()</literal>. This option is
-            provided to prevent issues with corruption of the statements
-            when use with server side prepared statements. If you want
-            to use server-side prepare statements, set this option to
-            false. This option was added in Connector/NET 5.0.3 and
-            Connector/NET 1.0.9.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Initial Catalog</literal>, <literal>Database</literal></para>
-            </entry>
-            <entry>
-              <para>mysql</para>
-            </entry>
-            <entry>
-              <para>The name of the database to use intially</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>InteractiveSession</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Logging</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>When true, various pieces of information is output to any configured
-            TraceListeners.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Old Guids</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>This option was introduced in Connector/NET 6.1.1. The backend
-            representation of a GUID type was changed from
-            <literal>BINARY(16)</literal> to
-            <literal>CHAR(36)</literal>. This was done to allow
-            developers to use the server function
-            <literal>UUID()</literal> to populate a GUID table -
-            <literal>UUID()</literal> generates a 36-character string.
-            Developers of older applications can add 'Old Guids=true' to
-            the connection string in order to use a GUID of data type
-            <literal>BINARY(16)</literal>.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Old Syntax</literal>, <literal>OldSyntax</literal></para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>This option was deprecated in Connector/NET 5.2.2. All code should now
-            be written using the '@' symbol as the parameter marker.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Password</literal>, <literal>pwd</literal></para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-            <entry>
-              <para>The password for the MySQL account being used.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Persist Security Info</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>When set to <literal>false</literal> or <literal>no</literal> (strongly
-            recommended), 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. Recognized values are
-            <literal>true</literal>, <literal>false</literal>,
-            <literal>yes</literal>, and <literal>no</literal>.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Pipe Name</literal>, <literal>Pipe</literal></para>
-            </entry>
-            <entry>
-              <para>mysql</para>
-            </entry>
-            <entry>
-              <para>When set to the name of a named pipe, the
-            <literal>MySqlConnection</literal> will attempt to connect
-            to MySQL on that named pipe.This settings only applies to
-            the Windows platform.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Port</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>3306</para>
-            </entry>
-            <entry>
-              <para>The port MySQL is using to listen for connections. This value is ignored
-            if Unix socket is used.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Procedure Cache Size</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>25</para>
-            </entry>
-            <entry>
-              <para>Sets the size of the stored procedure cache. By default, Connector/NET
-            will store the metadata (input/output datatypes) about the
-            last 25 stored procedures used. To disable the stored
-            procedure cache, set the value to zero (0). This option was
-            added in Connector/NET 5.0.2 and Connector/NET 1.0.9.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Protocol</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>socket</para>
-            </entry>
-            <entry>
-              <para>Specifies the type of connection to make to the server. Values can be:
-            <literal>socket</literal> or <literal>tcp</literal> for a
-            socket connection, <literal>pipe</literal> for a named pipe
-            connection, <literal>unix</literal> for a Unix socket
-            connection, <literal>memory</literal> to use MySQL shared
-            memory.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Respect Binary Flags</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>true</para>
-            </entry>
-            <entry>
-              <para>Setting this option to <literal>false</literal> means that Connector/NET
-            will ignore a column's binary flags as set by the server.
-            This option was added in Connector/NET version 5.1.3.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Shared Memory Name</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>MYSQL</para>
-            </entry>
-            <entry>
-              <para>The name of the shared memory object to use for communication if the
-            connection protocol is set to memory.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>SSL Mode</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>None</para>
-            </entry>
-            <entry>
-              <para>This option has the following values:
-
-            <list class="bullet"><listItem><para><legacyBold>None</legacyBold> - do not use
-                  SSL.
-                </para></listItem><listItem><para><legacyBold>Preferred</legacyBold> - use SSL
-                  if the server supports it, but allow connection in all
-                  cases.
-                </para></listItem><listItem><para><legacyBold>Required</legacyBold> - Always use
-                  SSL. Deny connection if server does not support SSL.
-                </para></listItem><listItem><para><legacyBold>VerifyCA</legacyBold> - Always use
-                  SSL. Validate the CA but tolerate name mismatch.
-                </para></listItem><listItem><para><legacyBold>VerifyFull</legacyBold> - Always
-                  use SSL. Fail if the host name is not correct.
-                </para></listItem></list><para>
-              This option was introduced in  6.1.1.
-            </para></para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>TreatBlobsAsUTF8</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Treat Tiny As Boolean</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>true</para>
-            </entry>
-            <entry>
-              <para>Setting this value to <literal>false</literal> indicates that
-            <literal>TINYINT(1)</literal> will be treated as an
-            <literal>INT</literal>. See also
-            <link xlink:href="numeric-type-overview"></link> for a further
-            explanation of the <literal>TINYINT</literal>
-            and <literal>BOOL</literal> data types.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Use Affected Rows</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>When <literal>true</literal> the connection will report changed rows
-            instead of found rows. This option was added in
-            Connector/NET version 5.2.6.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Use Procedure Bodies</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>true</para>
-            </entry>
-            <entry>
-              <para>Setting this option to <literal>false</literal> indicates that the user
-            connecting to the database does not have the
-            <literal>SELECT</literal> privileges for the
-            <literal>mysql.proc</literal> (stored procedures) table.
-            When to set to <literal>false</literal>, Connector/NET will
-            not rely on this information being available when the
-            procedure is called. Because Connector/NET will be unable to
-            determine this information, you should explicitly set the
-            types of the all the parameters before the call and the
-            parameters should be added to the command in the exact same
-            order as they appear in the procedure definition. This
-            option was added in Connector/NET 5.0.4 and Connector/NET
-            1.0.10.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>User Id</literal>, <literal>Username</literal>,
-            <literal>Uid</literal>, <literal>User name</literal></para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-            <entry>
-              <para>The MySQL login account being used.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Use Compression</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>
-                <para>
-              Setting this option to <literal>true</literal> enables
-              compression of packets exchanged between the client and
-              the server. This exchange is defined by the MySQL
-              client-server protocol.
-            </para>
-                <para>
-              Compression is used if both client and server support ZLIB
-              compression, and the client has requested compression
-              using this option.
-            </para>
-                <para>
-              A compressed packet header is: packet length (3 bytes),
-              packet number (1 byte), and Uncompressed Packet Length (3
-              bytes). The Uncompressed Packet Length is the number of
-              bytes in the original, uncompressed packet. If this is
-              zero then the data in this packet has not been compressed.
-              When the compression protocol is in use, either the client
-              or the server may compress packets. However, compression
-              will not occur if the compressed length is greater than
-              the original length. Thus, some packets will contain
-              compressed data while other packets will not.
-            </para>
-              </para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Use Usage Advisor</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Use Performance Monitor</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>
-              </para>
-            </entry>
-          </row>
-        </table>
-        <para>
-    The following table lists the valid names for connection pooling
-    values within the <literal>ConnectionString</literal>. For more
-    information about connection pooling, see Connection Pooling for the
-    MySQL Data Provider.
-  </para>
-        <table>
-          <row>
-            <entry>
-              <para>Name</para>
-            </entry>
-            <entry>
-              <para>Default</para>
-            </entry>
-            <entry>
-              <para>Description</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Cache Server Configuration</literal>,
-            <literal>CacheServerConfiguration</literal>,
-            <literal>CacheServerConfig</literal></para>
-            </entry>
-            <entry>
-              <para>false</para>
-            </entry>
-            <entry>
-              <para>Specifies whether server variables should be updated when a pooled
-            connection is returned. Turning this on will yield faster
-            opens but will also not catch any server changes made by
-            other connections.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Connection Lifetime</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>0</para>
-            </entry>
-            <entry>
-              <para>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
-            <literal>Connection Lifetime</literal>. This is useful in
-            clustered configurations to force load balancing between a
-            running server and a server just brought online. A value of
-            zero (0) causes pooled connections to have the maximum
-            connection timeout.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Max Pool Size</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>100</para>
-            </entry>
-            <entry>
-              <para>The maximum number of connections allowed in the pool.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Min Pool Size</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>0</para>
-            </entry>
-            <entry>
-              <para>The minimum number of connections allowed in the pool.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Pooling</literal>
-              </para>
-            </entry>
-            <entry>
-              <para>true</para>
-            </entry>
-            <entry>
-              <para>When <literal>true</literal>, the <literal>MySqlConnection</literal>
-            object is drawn from the appropriate pool, or if necessary,
-            is created and added to the appropriate pool. Recognized
-            values are <literal>true</literal>,
-            <literal>false</literal>, <literal>yes</literal>, and
-            <literal>no</literal>.</para>
-            </entry>
-          </row>
-          <row>
-            <entry>
-              <para>
-                <literal>Reset Pooled Connections</literal>,
-            <literal>ResetConnections</literal>,
-            <literal>ResetPooledConnections</literal></para>
-            </entry>
-            <entry>
-              <para>true</para>
-            </entry>
-            <entry>
-              <para>Specifies whether a ping and a reset should be sent to the server before
-            a pooled connection is returned. Not resetting will yield
-            faster connection opens but also will not clear out session
-            items such as temp tables.</para>
-            </entry>
-          </row>
-        </table>
-      </content>
-    </section>
-  </developerConceptualDocument>
-</topic>
\ No newline at end of file

=== modified file 'Documentation/Users Guide/connector-net-programming.aml'
--- a/Documentation/Users Guide/connector-net-programming.aml	2009-12-15 21:58:48 +0000
+++ b/Documentation/Users Guide/connector-net-programming.aml	2010-07-22 19:09:34 +0000
@@ -103,7 +103,7 @@
       The <literal>MySqlConnection</literal> object is configured using
       a connection string. A connection string contains sever key/value
       pairs, separated by semicolons. Each key/value pair is joined with
-      an equals sign.
+      an equal sign.
     </para>
         <para>
       The following is a sample connection string:
@@ -343,6 +343,237 @@
 </code>
       </content>
     </section>
+    <section address="connector-net-programming-getschema">
+      <title>Using GetSchema on a Connection</title>
+      <content>
+        <autoOutline />
+        <para>
+        The <literal>GetSchema()</literal> method of the connection
+        object can be used to retrieve schema information about the
+        database currently connected to. The schema information is
+        returned in the form of a <literal>DataTable</literal>. The
+        schema information is organised into a number of collections.
+        Different forms of the <literal>GetSchema()</literal> method can
+        be used depending on the information required. There are three
+        forms of the <literal>GetSchema()</literal> method:
+      </para>
+        <list class="bullet">
+          <listItem>
+            <para>
+              <literal>GetSchema()</literal> - This call will return a
+            list of available collections.
+          </para>
+          </listItem>
+          <listItem>
+            <para>
+              <literal>GetSchema(String)</literal> - This call returns
+            information about the collection named in the string
+            parameter. If the string 
+            is used then a list of all available collections is
+            returned. This is the same as calling
+            <literal>GetSchema()</literal> without any parameters.
+          </para>
+          </listItem>
+          <listItem>
+            <para>
+              <literal>GetSchema(String, String[])</literal> - In this
+            call the first string parameter represents the collection
+            name, and the second parameter represents a string array of
+            restriction values. Restriction values limit the amount of
+            data that will be returned. Restriction values are explained
+            in more detail in the
+            <externalLink><linkText>Microsoft
+            .NET documentation</linkText><linkUri>http://msdn.microsoft.com/en-us/library/ms254934(VS.80).aspx</linkUri></externalLink>.
+          </para>
+          </listItem>
+        </list>
+      </content>
+    </section>
+    <section address="connector-net-programming-getschema-collections">
+      <title>Collections</title>
+      <content>
+        <para>
+          The collections can be broadly grouped into two types:
+          collections that are common to all data providers, and
+          collections specific to a particular provider.
+        </para>
+        <para>
+          <legacyBold>Common</legacyBold>
+        </para>
+        <para>
+          The following collections are common to all data providers:
+        </para>
+        <list class="bullet">
+          <listItem>
+            <para>
+              MetaDataCollections
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              DataSourceInformation
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              DataTypes
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Restrictions
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              ReservedWords
+            </para>
+          </listItem>
+        </list>
+        <para>
+          <legacyBold>Provider-specific</legacyBold>
+        </para>
+        <para>
+          The following are the collections currently provided by
+          , in addition to the common collections above:
+        </para>
+        <list class="bullet">
+          <listItem>
+            <para>
+              Databases
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Tables
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Columns
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Users
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Foreign Keys
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              IndexColumns
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Indexes
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Foreign Key Columns
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              UDF
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Views
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              ViewColumns
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Procedure Parameters
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Procedures
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              Triggers
+            </para>
+          </listItem>
+        </list>
+        <para>
+          <legacyBold>Example Code</legacyBold>
+        </para>
+        <para>
+          A list of available collections can be obtained using the
+          following code:
+        </para>
+        <code>
+using System;
+using System.Data;
+using System.Text;
+using MySql.Data;
+using MySql.Data.MySqlClient;
+
+namespace ConsoleApplication2
+{
+    class Program
+    {
+
+        private static void DisplayData(System.Data.DataTable table)
+        {
+            foreach (System.Data.DataRow row in table.Rows)
+            {
+                foreach (System.Data.DataColumn col in table.Columns)
+                {
+                    Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
+                }
+                Console.WriteLine("============================");
+            }
+        }
+
+        static void Main(string[] args)
+        {
+
+            string connStr = "server=localhost;user=root;database=world;port=3306;password=******;";
+            MySqlConnection conn = new MySqlConnection(connStr);
+
+            try
+            {
+                Console.WriteLine("Connecting to MySQL...");
+                conn.Open();
+
+                DataTable table = conn.GetSchema("MetaDataCollections");
+                //DataTable table = conn.GetSchema("UDF");
+                DisplayData(table);
+
+                conn.Close();
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.ToString());
+            }
+            Console.WriteLine("Done.");
+        }
+    }
+}
+</code>
+        <para>
+          Further information on the <literal>GetSchema()</literal>
+          method and schema collections can be found in the
+          <externalLink><linkText>Microsoft
+          .NET documentation</linkText><linkUri>http://msdn.microsoft.com/en-us/library/kcax58fh(VS.80).aspx</linkUri></externalLink>.
+        </para>
+      </content>
+    </section>
     <section address="connector-net-programming-mysqlcommand">
       <title>Using MySqlCommand</title>
       <content>
@@ -403,8 +634,7 @@
 ...</code>
         <para>
       Examples of using the CommandType of StoredProcedure can be found
-      in the section
-      <link xlink:href="8b7d06e8-0177-4dd0-acca-f9c9caaa1072#connector-net-programming-stored-calling">Calling a Stored Procedure from Connector/NET</link>.
+      in the section <link xlink:href="8b7d06e8-0177-4dd0-acca-f9c9caaa1072#connector-net-programming-stored">Accessing Stored Procedures with Connector/NET</link>.
     </para>
         <para>
       Commands can have a timeout associated with them. This is useful
@@ -511,7 +741,10 @@
       connections. For example, a web application that peaked at 1000
       concurrent database connections would consume 1000 threads and
       1000 open sockets at the server, without ever freeing up those
-      resources from the connection pool.
+      resources from the connection pool. Note, connections, no matter
+      how old, will not be closed if the number of connections in the
+      pool is less than or equal to the value set by the <literal>Min
+      Pool Size</literal> connection string parameter.
     </para>
       </content>
     </section>
@@ -585,8 +818,8 @@
    cmd.CommandText = "INSERT INTO myTable VALUES(NULL, @number, @text)"
    cmd.Prepare()
 
-   cmd.Parameters.Add("@number", 1)
-   cmd.Parameters.Add("@text", "One")
+   cmd.Parameters.AddWithValue("@number", 1)
+   cmd.Parameters.AddWithValue("@text", "One")
 
    For i = 1 To 1000
        cmd.Parameters["@number"].Value = i
@@ -617,8 +850,8 @@
     cmd.CommandText = "INSERT INTO myTable VALUES(NULL, @number, @text)";
     cmd.Prepare();
 
-    cmd.Parameters.Add("@number", 1);
-    cmd.Parameters.Add("@text", "One");
+    cmd.Parameters.AddWithValue("@number", 1);
+    cmd.Parameters.AddWithValue("@text", "One");
 
     for (int i=1; i &lt;= 1000; i++)
     {
@@ -680,7 +913,7 @@
         <para>
       Connector/NET supports the calling of stored procedures through
       the <literal>MySqlCommand</literal> object. Data can be passed in
-      and our of a MySQL stored procedure through use of the
+      and out of a MySQL stored procedure through use of the
       <literal>MySqlCommand.Parameters</literal> collection.
     </para>
         <alert class="note">
@@ -707,92 +940,32 @@
     </para>
       </content>
     </section>
-    <section address="connector-net-programming-stored-creating">
-      <title>Creating Stored Procedures from Connector/NET</title>
+    <section address="connector-net-programming-stored-using">
+      <title>Using Stored Routines from Connector/NET</title>
       <content>
         <para>
         Stored procedures in MySQL can be created using a variety of
         tools. First, stored procedures can be created using the
          command-line client. Second, stored
-        procedures can be created using the <literal>MySQL Query
-        Browser</literal> GUI client. Finally, stored procedures can be
-        created using the <literal>.ExecuteNonQuery</literal> method of
-        the <literal>MySqlCommand</literal> object:
+        procedures can be created using workbench. Finally, stored
+        procedures can be created using the
+        <literal>.ExecuteNonQuery</literal> method of the
+        <literal>MySqlCommand</literal> object.
       </para>
-        <para>
-        </para>
-        <code language="VB">
-Dim conn As New MySqlConnection
-Dim cmd As New MySqlCommand
-
-conn.ConnectionString = "server=127.0.0.1;" _
-    &amp; "uid=root;" _
-    &amp; "pwd=12345;" _
-    &amp; "database=test"
-
-Try
-    conn.Open()
-    cmd.Connection = conn
-
-    cmd.CommandText = "CREATE PROCEDURE add_emp(" _
-        &amp; "IN fname VARCHAR(20), IN lname VARCHAR(20), IN bday DATETIME, OUT empno INT) " _
-        &amp; "BEGIN INSERT INTO emp(first_name, last_name, birthdate) " _
-        &amp; "VALUES(fname, lname, DATE(bday)); SET empno = LAST_INSERT_ID(); END"
-
-    cmd.ExecuteNonQuery()
-Catch ex As MySqlException
-    MessageBox.Show("Error " &amp; ex.Number &amp; " has occurred: " &amp; ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
-End Try
-</code>
-        <para>
-        </para>
-        <code language="C#">
-MySql.Data.MySqlClient.MySqlConnection conn;
-MySql.Data.MySqlClient.MySqlCommand cmd;
-
-conn = new MySql.Data.MySqlClient.MySqlConnection();
-cmd = new MySql.Data.MySqlClient.MySqlCommand();
-
-conn.ConnectionString = "server=127.0.0.1;uid=root;" +
-    "pwd=12345;database=test;";
-
-try
-{
-    conn.Open();
-    cmd.Connection = conn;
-
-    cmd.CommandText = "CREATE PROCEDURE add_emp(" +
-        "IN fname VARCHAR(20), IN lname VARCHAR(20), IN bday DATETIME, OUT empno INT) " +
-        "BEGIN INSERT INTO emp(first_name, last_name, birthdate) " +
-        "VALUES(fname, lname, DATE(bday)); SET empno = LAST_INSERT_ID(); END";
-
-    cmd.ExecuteNonQuery();
-}
-catch (MySql.Data.MySqlClient.MySqlException ex)
-{
-MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message,
-    "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
-}
-</code>
         <para>
         It should be noted that, unlike the command-line and GUI
         clients, you are not required to specify a special delimiter
         when creating stored procedures in Connector/NET.
       </para>
-      </content>
-    </section>
-    <section address="connector-net-programming-stored-calling">
-      <title>Calling a Stored Procedure from Connector/NET</title>
-      <content>
         <para>
-        To call a stored procedure using Connector/NET, create a
+        To call a stored procedure using Connector/NET, you create a
         <literal>MySqlCommand</literal> object and pass the stored
         procedure name as the <literal>.CommandText</literal> property.
-        Set the <literal>.CommandType</literal> property to
+        You then set the <literal>.CommandType</literal> property to
         <literal>CommandType.StoredProcedure</literal>.
       </para>
         <para>
-        After the stored procedure is named, create one
+        After the stored procedure is named, you create one
         <literal>MySqlCommand</literal> parameter for every parameter in
         the stored procedure. <literal>IN</literal> parameters are
         defined with the parameter name and the object containing the
@@ -801,94 +974,116 @@
         All parameters need the parameter direction defined.
       </para>
         <para>
-        After defining parameters, call the stored procedure by using
-        the <literal>MySqlCommand.ExecuteNonQuery()</literal> method:
+        After defining the parameters, you call the stored procedure by
+        using the <literal>MySqlCommand.ExecuteNonQuery()</literal>
+        method.
       </para>
-        <para>
-        </para>
-        <code language="VB">
-Dim conn As New MySqlConnection
-Dim cmd As New MySqlCommand
-
-conn.ConnectionString = "server=127.0.0.1;" _
-    &amp; "uid=root;" _
-    &amp; "pwd=12345;" _
-    &amp; "database=test"
-
-Try
-    conn.Open()
-    cmd.Connection = conn
-
-    cmd.CommandText = "add_emp"
-    cmd.CommandType = CommandType.StoredProcedure
-
-    cmd.Parameters.Add("@lname", 'Jones')
-    cmd.Parameters["@lname"].Direction = ParameterDirection.Input
-
-    cmd.Parameters.Add("@fname", 'Tom')
-    cmd.Parameters["@fname"].Direction = ParameterDirection.Input
-
-    cmd.Parameters.Add("@bday", #12/13/1977 2:17:36 PM#)
-    cmd.Parameters["@bday"].Direction = ParameterDirection.Input
-
-    cmd.Parameters.Add("@empno", MySqlDbType.Int32)
-    cmd.Parameters["@empno"].Direction = ParameterDirection.Output
-
-    cmd.ExecuteNonQuery()
-
-    MessageBox.Show(cmd.Parameters["@empno"].Value)
-Catch ex As MySqlException
-    MessageBox.Show("Error " &amp; ex.Number &amp; " has occurred: " &amp; ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
-End Try
-</code>
-        <para>
-        </para>
-        <code language="C#">
-MySql.Data.MySqlClient.MySqlConnection conn;
-MySql.Data.MySqlClient.MySqlCommand cmd;
-
-conn = new MySql.Data.MySqlClient.MySqlConnection();
-cmd = new MySql.Data.MySqlClient.MySqlCommand();
-
-conn.ConnectionString = "server=127.0.0.1;uid=root;" +
-    "pwd=12345;database=test;";
-
-try
-{
-    conn.Open();
-    cmd.Connection = conn;
-
-    cmd.CommandText = "add_emp";
-    cmd.CommandType = CommandType.StoredProcedure;
-
-    cmd.Parameters.Add("@lname", "Jones");
-    cmd.Parameters["@lname"].Direction = ParameterDirection.Input;
-
-    cmd.Parameters.Add("@fname", "Tom");
-    cmd.Parameters["@fname"].Direction = ParameterDirection.Input;
-
-    cmd.Parameters.Add("@bday", DateTime.Parse("12/13/1977 2:17:36 PM"));
-    cmd.Parameters["@bday"].Direction = ParameterDirection.Input;
-
-    cmd.Parameters.Add("@empno", MySqlDbType.Int32);
-    cmd.Parameters["@empno"].Direction = ParameterDirection.Output;
-
-    cmd.ExecuteNonQuery();
-
-    MessageBox.Show(cmd.Parameters["@empno"].Value);
-}
-catch (MySql.Data.MySqlClient.MySqlException ex)
-{
-    MessageBox.Show("Error " + ex.Number + " has occurred: " + ex.Message,
-      "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
-}
-</code>
         <para>
-        Once the stored procedure is called, the values of output
+        Once the stored procedure is called, the values of the output
         parameters can be retrieved by using the
         <literal>.Value</literal> property of the
         <literal>MySqlConnector.Parameters</literal> collection.
       </para>
+        <alert class="note">
+          <para>
+          When a stored procedure is called using
+          <literal>MySqlCommand.ExecuteReader</literal>, and the stored
+          procedure has output parameters, the output parameters are
+          only set after the <literal>MySqlDataReader</literal> returned
+          by <literal>ExecuteReader</literal> is closed.
+        </para>
+        </alert>
+        <para>
+        The following C# example code demonstrates the use of stored
+        procedures. It assumes the database 'employees' has already been
+        created:
+      </para>
+        <code language="C#">
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using System.Data;
+using MySql.Data;
+using MySql.Data.MySqlClient;
+
+namespace UsingStoredRoutines
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            MySqlConnection conn = new MySqlConnection();
+            conn.ConnectionString = "server=localhost;user=root;database=employees;port=3306;password=******;";
+            MySqlCommand cmd = new MySqlCommand();
+
+            try
+            {
+                Console.WriteLine("Connecting to MySQL...");
+                conn.Open();
+                cmd.Connection = conn;
+                cmd.CommandText = "DROP PROCEDURE IF EXISTS add_emp";
+                cmd.ExecuteNonQuery();
+                cmd.CommandText = "DROP TABLE IF EXISTS emp";
+                cmd.ExecuteNonQuery();
+                cmd.CommandText = "CREATE TABLE emp (empno INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(20), last_name VARCHAR(20), birthdate DATE)";
+                cmd.ExecuteNonQuery();
+
+                cmd.CommandText = "CREATE PROCEDURE add_emp(" +
+                                  "IN fname VARCHAR(20), IN lname VARCHAR(20), IN bday DATETIME, OUT empno INT)" +
+                                  "BEGIN INSERT INTO emp(first_name, last_name, birthdate) " +
+                                  "VALUES(fname, lname, DATE(bday)); SET empno = LAST_INSERT_ID(); END";
+
+                cmd.ExecuteNonQuery();
+            }
+            catch (MySqlException ex)
+            {
+                Console.WriteLine ("Error " + ex.Number + " has occurred: " + ex.Message);
+            }
+            conn.Close();
+            Console.WriteLine("Connection closed.");
+            try
+            {
+                Console.WriteLine("Connecting to MySQL...");
+                conn.Open();
+                cmd.Connection = conn;
+
+                cmd.CommandText = "add_emp";
+                cmd.CommandType = CommandType.StoredProcedure;
+
+                cmd.Parameters.AddWithValue("@lname", "Jones");
+                cmd.Parameters["@lname"].Direction = ParameterDirection.Input;
+
+                cmd.Parameters.AddWithValue("@fname", "Tom");
+                cmd.Parameters["@fname"].Direction = ParameterDirection.Input;
+
+                cmd.Parameters.AddWithValue("@bday", "1940-06-07");
+                cmd.Parameters["@bday"].Direction = ParameterDirection.Input;
+
+                cmd.Parameters.AddWithValue("@empno", MySqlDbType.Int32);
+                cmd.Parameters["@empno"].Direction = ParameterDirection.Output;
+
+                cmd.ExecuteNonQuery();
+
+                Console.WriteLine("Employee number: "+cmd.Parameters["@empno"].Value);
+                Console.WriteLine("Birthday: " + cmd.Parameters["@bday"].Value);
+            }
+            catch (MySql.Data.MySqlClient.MySqlException ex)
+            {
+                Console.WriteLine("Error " + ex.Number + " has occurred: " + ex.Message);
+            }
+            conn.Close();
+            Console.WriteLine("Done.");
+        }
+    }
+}
+</code>
+        <para>
+        The following code shows the same application in Visual Basic:
+      </para>
+        <code language="VB">
+        </code>
       </content>
     </section>
     <section address="connector-net-programming-blob">
@@ -952,8 +1147,8 @@
         <para>
         The max_allowed_packet option can be modified using MySQL
         Administrator's Startup Variables screen. Adjust the Maximum
-        allowed option in the Memory section of the Networking tab to an
-        appropriate setting. After adjusting the value, click the
+        permitted option in the Memory section of the Networking tab to
+        an appropriate setting. After adjusting the value, click the
         <math>Apply Changes</math> button and restart the
         server using the <literal>Service Control</literal> screen of
         MySQL Administrator. You can also adjust this value directly in
@@ -1012,9 +1207,9 @@
 
     cmd.Connection = conn
     cmd.CommandText = SQL
-    cmd.Parameters.Add("@FileName", strFileName)
-    cmd.Parameters.Add("@FileSize", FileSize)
-    cmd.Parameters.Add("@File", rawData)
+    cmd.Parameters.AddWithValue("@FileName", strFileName)
+    cmd.Parameters.AddWithValue("@FileSize", FileSize)
+    cmd.Parameters.AddWithValue("@File", rawData)
 
     cmd.ExecuteNonQuery()
 
@@ -1059,9 +1254,9 @@
 
     cmd.Connection = conn;
     cmd.CommandText = SQL;
-    cmd.Parameters.Add("@FileName", strFileName);
-    cmd.Parameters.Add("@FileSize", FileSize);
-    cmd.Parameters.Add("@File", rawData);
+    cmd.Parameters.AddWithValue("@FileName", strFileName);
+    cmd.Parameters.AddWithValue("@FileSize", FileSize);
+    cmd.Parameters.AddWithValue("@File", rawData);
 
     cmd.ExecuteNonQuery();
 
@@ -1498,7 +1693,7 @@
         <para>
         When a report is created from multiple tables using
         Connector/ODBC, a data set with multiple tables must be created
-        in our application. This allows each table in the report data
+        in our application. This enables each table in the report data
         source to be replaced with a report in the data set.
       </para>
         <para>
@@ -1776,8 +1971,8 @@
       <content>
         <para>
        provides support for the ASP.NET 2.0 provider model. This
-      model allows application developers to focus on the business logic
-      of their application instead of having to recreate such
+      model enables application developers to focus on the business
+      logic of their application instead of having to recreate such
       boilerplate items as membership and roles support.
     </para>
         <para>
@@ -2022,9 +2217,12 @@
         <code>
 &lt;connectionStrings&gt;
   &lt;remove name="LocalMySqlServer"/&gt;
-  &lt;add name="LocalMySqlServer" connectionString="server=xxx;uid=xxx;pwd=xxx"/&gt;
+  &lt;add name="LocalMySqlServer" connectionString="server=xxx;uid=xxx;pwd=xxx;database=xxx;"/&gt;
 &lt;/connectionStrings&gt;</code>
         <para>
+      Note the database you want to connect to must be specified.
+    </para>
+        <para>
       Rather than manually editing configuration files it is recommended
       that you use the MySQL Website Configuration tool to config your
       desired provider setup. From  6.1.1 onwards all providers
@@ -2175,14 +2373,15 @@
       </content>
     </section>
     <section address="connector-net-programming-tracing">
-      <title>Tracing</title>
+      <title>Using the  Trace Source Object</title>
       <content>
+        <autoOutline />
         <para>
        6.2 introduced support for .NET 2.0 compatible tracing,
       using <literal>TraceSource</literal> objects.
     </para>
         <para>
-      The .NET 2.0 architecture consists of four main parts:
+      The .NET 2.0 tracing architecture consists of four main parts:
     </para>
         <list class="bullet">
           <listItem>
@@ -2212,7 +2411,7 @@
           </listItem>
           <listItem>
             <para>
-              <legacyBold>Filter</legacyBold> - filters can be attached to
+              <legacyBold>Filter</legacyBold> - Filters can be attached to
           listeners. Filters determine the level of trace information
           that will be written. While a switch defines the level of
           information that will be written to all listeners, a filter
@@ -2313,5 +2512,604 @@
 ts.Close();</code>
       </content>
     </section>
+    <section address="connector-net-programming-tracing-mysql">
+      <title>Viewing MySQL Trace Information</title>
+      <content>
+        <para>
+        This section describes how to set up your application to view
+        MySQL trace information.
+      </para>
+        <para>
+        The first thing you need to do is create a suitable
+        <legacyBold>app.config</legacyBold> file for your application. An
+        example is shown in the following code:
+      </para>
+        <codeInline>
+        </codeInline>
+        <para>
+        This ensures a suitable trace source is created, along with a
+        switch. The switch level in this case is set to
+        <literal>Verbose</literal> to display the maximum amount of
+        information.
+      </para>
+        <para>
+        In the application the only other step required is to add
+        <literal>logging=true</literal> to the connection string. An
+        example application could be:
+      </para>
+        <code>
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Diagnostics;
+using MySql.Data;
+using MySql.Data.MySqlClient;
+using MySql.Web;
+
+
+namespace ConsoleApplication1
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+
+            string connStr = "server=localhost;user=root;database=world;port=3306;password=******;logging=true;";
+            MySqlConnection conn = new MySqlConnection(connStr);
+            try
+            {
+                Console.WriteLine("Connecting to MySQL...");
+                conn.Open();
+
+                string sql = "SELECT Name, HeadOfState FROM Country WHERE Continent='Oceania'";
+                MySqlCommand cmd = new MySqlCommand(sql, conn);
+                MySqlDataReader rdr = cmd.ExecuteReader();
+
+                while (rdr.Read())
+                {
+                    Console.WriteLine(rdr[0] + " -- " + rdr[1]);
+                }
+
+                rdr.Close();
+
+                conn.Close();
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.ToString());
+            }
+            Console.WriteLine("Done.");
+        }
+    }
+}
+</code>
+        <para>
+        Ths simple application will then generate the following output:
+      </para>
+        <code>
+Connecting to MySQL...
+mysql Information: 1 : 1: Connection Opened: connection string = 'server=localhost;User Id=root;database=world;port=3306
+;password=******;logging=True'
+mysql Information: 3 : 1: Query Opened: SHOW VARIABLES
+mysql Information: 4 : 1: Resultset Opened: field(s) = 2, affected rows = -1, inserted id = -1
+mysql Information: 5 : 1: Resultset Closed. Total rows=272, skipped rows=0, size (bytes)=7058
+mysql Information: 6 : 1: Query Closed
+mysql Information: 3 : 1: Query Opened: SHOW COLLATION
+mysql Information: 4 : 1: Resultset Opened: field(s) = 6, affected rows = -1, inserted id = -1
+mysql Information: 5 : 1: Resultset Closed. Total rows=127, skipped rows=0, size (bytes)=4102
+mysql Information: 6 : 1: Query Closed
+mysql Information: 3 : 1: Query Opened: SET character_set_results=NULL
+mysql Information: 4 : 1: Resultset Opened: field(s) = 0, affected rows = 0, inserted id = 0
+mysql Information: 5 : 1: Resultset Closed. Total rows=0, skipped rows=0, size (bytes)=0
+mysql Information: 6 : 1: Query Closed
+mysql Information: 10 : 1: Set Database: world
+mysql Information: 3 : 1: Query Opened: SELECT Name, HeadOfState FROM Country WHERE Continent='Oceania'
+mysql Information: 4 : 1: Resultset Opened: field(s) = 2, affected rows = -1, inserted id = -1
+American Samoa -- George W. Bush
+Australia -- Elisabeth II
+...
+Wallis and Futuna -- Jacques Chirac
+Vanuatu -- John Bani
+United States Minor Outlying Islands -- George W. Bush
+mysql Information: 5 : 1: Resultset Closed. Total rows=28, skipped rows=0, size (bytes)=788
+mysql Information: 6 : 1: Query Closed
+Done.
+mysql Information: 2 : 1: Connection Closed
+</code>
+        <para>
+        The first number displayed in the trace message corresponds to
+        the MySQL event type:
+      </para>
+        <table>
+          <row>
+            <entry>
+              <para>
+                <legacyBold>Event</legacyBold>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                <legacyBold>Description</legacyBold>
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>1</para>
+            </entry>
+            <entry>
+              <para>ConnectionOpened: connection string</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>2</para>
+            </entry>
+            <entry>
+              <para>ConnectionClosed:</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>3</para>
+            </entry>
+            <entry>
+              <para>QueryOpened: mysql server thread id, query text</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>4</para>
+            </entry>
+            <entry>
+              <para>ResultOpened: field count, affected rows (-1 if select), inserted id (-1
+                if select)</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>5</para>
+            </entry>
+            <entry>
+              <para>ResultClosed: total rows read, rows skipped, size of resultset in bytes</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>6</para>
+            </entry>
+            <entry>
+              <para>QueryClosed:</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>7</para>
+            </entry>
+            <entry>
+              <para>StatementPrepared: prepared sql, statement id</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>8</para>
+            </entry>
+            <entry>
+              <para>StatementExecuted: statement id, mysql server thread id</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>9</para>
+            </entry>
+            <entry>
+              <para>StatementClosed: statement id</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>10</para>
+            </entry>
+            <entry>
+              <para>NonQuery: [varies]</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>11</para>
+            </entry>
+            <entry>
+              <para>UsageAdvisorWarning: usage advisor flag. NoIndex = 1, BadIndex = 2,
+                SkippedRows = 3, SkippedColumns = 4, FieldConversion =
+                5.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>12</para>
+            </entry>
+            <entry>
+              <para>Warning: level, code, message</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>13</para>
+            </entry>
+            <entry>
+              <para>Error: error number, error message</para>
+            </entry>
+          </row>
+        </table>
+        <para>
+        The second number displayed in the trace message is the
+        connection count.
+      </para>
+        <para>
+        Although this example uses the
+        <literal>ConsoleTraceListener</literal>, any of the other
+        standard listeners could have been used. Another possibility is
+        to create a custom listener that uses the information passed via
+        the <literal>TraceEvent</literal> method. For example, a custom
+        trace listener could be created to perform active monitoring of
+        the MySQL event messages, rather than simply writing these to an
+        output device.
+      </para>
+        <para>
+        It is also possible to add listeners to the MySQL Trace Source
+        at run time. This can be done with the following code:
+      </para>
+        <codeInline>MySqlTrace.Listeners.Add(new ConsoleTraceListener());</codeInline>
+        <para>
+         6.3.2 introduced the ability to switch tracing on and off
+        at run time. This can be achieved using the calls
+        <literal>MySqlTrace.EnableQueryAnalyzer(string host, int
+        postInterval)</literal> and
+        <literal>MySqlTrace.DisableQueryAnalyzer()</literal>. The
+        parameter <literal>host</literal> is the URL of the MySQL
+        Enterprise Monitor server to monitor. The parameter
+        <literal>postInterval</literal> is how often the data should be
+        periodically posted to MySQL Enterprise Monitor, in seconds.
+      </para>
+      </content>
+    </section>
+    <section address="connector-net-programming-tracing-mysql-custom-listeners">
+      <title>Building Custom Listeners</title>
+      <content>
+        <para>
+        In order to build custom listeners that work with the 
+        Trace Source, it is necessary to understand the key methods
+        used, and the event data formats used.
+      </para>
+        <para>
+        The main method involved in passing trace messages is the
+        <literal>TraceSource.TraceEvent</literal> method. This has the
+        prototype:
+      </para>
+        <code>
+public void TraceEvent(
+    TraceEventType eventType,
+    int id,
+    string format,
+    params Object[] args
+)
+</code>
+        <para>
+        This trace source method will process the list of attached
+        listeners and call the listener's TraceListener.TraceEvent
+        method. The prototype for the
+        <literal>TraceListener.TraceEvent</literal> method is as
+        follows:
+      </para>
+        <code>
+public virtual void TraceEvent(
+    TraceEventCache eventCache,
+    string source,
+    TraceEventType eventType,
+    int id,
+    string format,
+    params Object[] args
+)
+</code>
+        <para>
+        The first three parameters are used in the standard as
+        <externalLink><linkText>defined
+        by Microsoft</linkText><linkUri>http://msdn.microsoft.com/en-us/library/d193webf.aspx</linkUri></externalLink>. The last three parameters contain
+        MySQL-specifc trace information. Each of these parameters is now
+        discussed in more detail.
+      </para>
+        <para>
+          <legacyBold>int id</legacyBold>
+        </para>
+        <para>
+        This is a MySQL-specific identifier. It identifies the MySQL
+        event type that has occurred, resulting in a trace message being
+        generated. This value is defined by the
+        <literal>MySqlTraceEventType</literal> public enum contained in
+        the  code:
+      </para>
+        <code>
+public enum MySqlTraceEventType : int
+{
+    ConnectionOpened = 1,
+    ConnectionClosed,
+    QueryOpened,
+    ResultOpened,
+    ResultClosed,
+    QueryClosed,
+    StatementPrepared,
+    StatementExecuted,
+    StatementClosed,
+    NonQuery,
+    UsageAdvisorWarning,
+    Warning,
+    Error
+}
+</code>
+        <para>
+        The MySQL event type also determines the contents passed via the
+        parameter <literal>params Object[] args</literal>. The nature of
+        the <literal>args</literal> parameters are described in further
+        detail in the following material.
+      </para>
+        <para>
+          <legacyBold>string
+        format</legacyBold>
+        </para>
+        <para>
+        This is the format string that contains zero or more format
+        items, which correspond to objects in the args array. This would
+        be used by a listener such as
+        <literal>ConsoleTraceListener</literal> to write a message to
+        the output device.
+      </para>
+        <para>
+          <legacyBold>params Object[]
+        args</legacyBold>
+        </para>
+        <para>
+        This is a list of objects that depends on the MySQL event type,
+        <literal>id</literal>. However, the first parameter passed via
+        this list is always the driver id. The driver id is a unique
+        number that is incremented each time the connector is opened.
+        This enables groups of queries on the same connection to be
+        identified. The parameters that follow driver id depend of the
+        MySQL event id, and are as follows:
+      </para>
+        <table>
+          <row>
+            <entry>
+              <para>
+                <legacyBold>MySQL-specific event type</legacyBold>
+              </para>
+            </entry>
+            <entry>
+              <para>
+                <legacyBold>Arguments (params Object[] args)</legacyBold>
+              </para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>ConnectionOpened</para>
+            </entry>
+            <entry>
+              <para>Connection string</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>ConnectionClosed</para>
+            </entry>
+            <entry>
+              <para>No additional parameters</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>QueryOpened</para>
+            </entry>
+            <entry>
+              <para>mysql server thread id, query text</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>ResultOpened</para>
+            </entry>
+            <entry>
+              <para>field count, affected rows (-1 if select), inserted id (-1 if select)</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>ResultClosed</para>
+            </entry>
+            <entry>
+              <para>total rows read, rows skipped, size of resultset in bytes</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>QueryClosed</para>
+            </entry>
+            <entry>
+              <para>No additional parameters</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>StatementPrepared</para>
+            </entry>
+            <entry>
+              <para>prepared sql, statement id</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>StatementExecuted</para>
+            </entry>
+            <entry>
+              <para>statement id, mysql server thread id</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>StatementClosed</para>
+            </entry>
+            <entry>
+              <para>statement id</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>NonQuery</para>
+            </entry>
+            <entry>
+              <para>Varies</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>UsageAdvisorWarning</para>
+            </entry>
+            <entry>
+              <para>usage advisor flag. NoIndex = 1, BadIndex = 2, SkippedRows = 3,
+                SkippedColumns = 4, FieldConversion = 5.</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>Warning</para>
+            </entry>
+            <entry>
+              <para>level, code, message</para>
+            </entry>
+          </row>
+          <row>
+            <entry>
+              <para>Error</para>
+            </entry>
+            <entry>
+              <para>error number, error message</para>
+            </entry>
+          </row>
+        </table>
+        <para>
+        This information will allow you to create custom trace listeners
+        that can actively monitor the MySQL-specific events.
+      </para>
+      </content>
+    </section>
+    <section address="connector-net-programming-bulk-loader">
+      <title>Using the Bulk Loader</title>
+      <content>
+        <para>
+       features a bulk loader class that wraps the MySQL statement
+      <literal>LOAD DATA INFILE</literal>. This gives  the ability
+      to load a data file from a local or remote host to the server. The
+      class concerned is <literal>MySqlBulkLoader</literal>. This class
+      has various methods, the main one being <literal>load</literal> to
+      cause the specified file to be loaded to the server. Various
+      parameters can be set to control how the data file is processed.
+      This is achieved through setting various properties of the class.
+      For example, the field separator used, such as comma or tab, can
+      be specified, along with the record terminator, such as newline.
+    </para>
+        <para>
+      The following code shows a simple example of using the
+      <literal>MySqlBulkLoader</literal> class. First an empty table
+      needs to be created, in this case in the <literal>test</literal>
+      database:
+    </para>
+        <code>
+CREATE TABLE Career (
+       Name VARCHAR(100) NOT NULL,
+       Age INTEGER,
+       Profession VARCHAR(200)
+);</code>
+        <para>
+      A simple tab-delimited data file is also created (it could use any
+      other field delimiter such as comma):
+    </para>
+        <code>
+Table Career in Test Database
+Name	Age	Profession
+
+Tony	47	Technical Writer
+Ana	43	Nurse
+Fred	21	IT Specialist
+Simon	45	Hairy Biker
+</code>
+        <para>
+      Note that with this test file the first three lines will need to
+      be ignored, as they do not contain table data. This can be
+      achieved using the <literal>NumberOfLinesToSkip</literal>
+      property. This file can then be loaded and used to populate the
+      <literal>Career</literal> table in the <literal>test</literal>
+      database:
+    </para>
+        <code>
+using System;
+using System.Text;
+using MySql.Data;
+using MySql.Data.MySqlClient;
+
+namespace ConsoleApplication1
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+
+            string connStr = "server=localhost;user=root;database=test;port=3306;password=******;";
+            MySqlConnection conn = new MySqlConnection(connStr);
+
+            MySqlBulkLoader bl = new MySqlBulkLoader(conn);
+            bl.TableName = "Career";
+            bl.FieldTerminator = "\t";
+            bl.LineTerminator = "\n";
+            bl.FileName = "c:/career_data.txt";
+            bl.NumberOfLinesToSkip = 3;
+
+            try
+            {
+                Console.WriteLine("Connecting to MySQL...");
+                conn.Open();
+
+                // Upload data from file
+                int count = bl.Load();
+                Console.WriteLine(count + " lines uploaded.");
+
+                string sql = "SELECT Name, Age, Profession FROM Career";
+                MySqlCommand cmd = new MySqlCommand(sql, conn);
+                MySqlDataReader rdr = cmd.ExecuteReader();
+
+                while (rdr.Read())
+                {
+                    Console.WriteLine(rdr[0] + " -- " + rdr[1] + " -- " + rdr[2]);
+                }
+
+                rdr.Close();
+
+                conn.Close();
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.ToString());
+            }
+            Console.WriteLine("Done.");
+        }
+    }
+}</code>
+        <para>
+      Further information on <literal>LOAD DATA INFILE</literal> can be
+      found in <link xlink:href="load-data"></link>. Further information on
+      <literal>MySqlBulkLoader</literal> can be found in the reference
+      documentation that was included with your connector.
+    </para>
+      </content>
+    </section>
   </developerConceptualDocument>
 </topic>
\ No newline at end of file

=== modified file 'Documentation/Users Guide/connector-net-support.aml'
--- a/Documentation/Users Guide/connector-net-support.aml	2009-09-08 17:05:09 +0000
+++ b/Documentation/Users Guide/connector-net-support.aml	2010-07-22 19:09:34 +0000
@@ -33,7 +33,7 @@
             <para>
           Paid support is available from Sun Microsystems, Inc.
           Additional information is available at
-          <externalLink><linkText>http://www.mysql.com/support/</linkText><linkUri>http://www.mysql.com/support/</linkUri></externalLink>.
+          <externalLink><linkText>http://dev.mysql.com/support/</linkText><linkUri>http://dev.mysql.com/support/</linkUri></externalLink>.
         </para>
           </listItem>
         </list>

=== modified file 'Documentation/Users Guide/connector-net-tutorials.aml'
--- a/Documentation/Users Guide/connector-net-tutorials.aml	2009-12-15 21:58:48 +0000
+++ b/Documentation/Users Guide/connector-net-tutorials.aml	2010-07-22 19:09:34 +0000
@@ -79,12 +79,12 @@
             Console.WriteLine("Connecting to MySQL...");
             conn.Open();
             // Perform databse operations
-            conn.Close();
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }
+        conn.Close();
         Console.WriteLine("Done.");
     }
 }</code>
@@ -178,14 +178,14 @@
             {
                 Console.WriteLine(rdr[0]+" -- "+rdr[1]);
             }
-
             rdr.Close();
-            conn.Close();
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }
+
+        conn.Close();
         Console.WriteLine("Done.");
     }
 }</code>
@@ -236,13 +236,13 @@
             string sql = "INSERT INTO Country (Name, HeadOfState, Continent) VALUES ('Disneyland','Mickey Mouse', 'North America')";
             MySqlCommand cmd = new MySqlCommand(sql, conn);
             cmd.ExecuteNonQuery();
-
-            conn.Close();
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }
+
+        conn.Close();
         Console.WriteLine("Done.");
     }
 }</code>
@@ -286,12 +286,13 @@
                 Console.WriteLine("Number of countries in the World database is: " + r);
             }
 
-            conn.Close();
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }
+
+        conn.Close();
         Console.WriteLine("Done.");
     }
 }</code>
@@ -547,9 +548,9 @@
     </para>
         <para>
       Although it is possible to build SQL query strings directly from
-      user input, this is not advisable as it does not prevent from
-      erroneous or malicious information being entered. It is safer to
-      use parameters as they will be processed as field data only. For
+      user input, this is not advisable as it does not prevent erroneous
+      or malicious information being entered. It is safer to use
+      parameters as they will be processed as field data only. For
       example, imagine the following query was contructed from user
       input:
     </para>
@@ -557,7 +558,7 @@
         <para>
       If the string <literal>user_continent</literal> came from a Text
       Box control, there would potentially be no control over the string
-      enetred by the user. The user could enter a string that generates
+      entered by the user. The user could enter a string that generates
       a run time error, or in the worst case actually harms the system.
       When using parameters it is not possible to do this because a
       parameter is only ever treated as a field parameter, rather than
@@ -573,25 +574,19 @@
     </para>
         <para>
       As well as marking the position of the parameter in the query
-      string, it is necessary to create a parameter object that can be
-      passed to the Command object. In Connector/NET the class
-      <literal>MySqlParameter</literal> is used for this purpose. The
-      use of <literal>MySqlParameter</literal> is best illustrated by a
-      small code snippet:
+      string, it is necessary to add a parameter to the Command object.
+      This is illustrated by the following code snippet:
     </para>
-        <code>MySqlParameter param = new MySqlParameter();
-param.ParameterName = "@Continent";
-param.Value = "North America";
-cmd.Parameters.Add(param);</code>
+        <code>
+cmd.Parameters.AddWithValue("@Continent", "North America");
+</code>
         <para>
       In this example the string "North America" is supplied as the
       parameter value statically, but in a more practical example it
-      would come from a user input control. Once the parameter has its
-      name and value set it needs to be added to the Command object
-      using the <literal>Add</literal> method.
+      would come from a user input control.
     </para>
         <para>
-      A further example illustrates this:
+      A further example illustrates the complete process:
     </para>
         <code>
 using System;
@@ -617,10 +612,7 @@
             Console.WriteLine("Enter a continent e.g. 'North America', 'Europe': ");
             string user_input = Console.ReadLine();
 
-            MySqlParameter param = new MySqlParameter();
-            param.ParameterName = "@Continent";
-            param.Value = user_input;
-            cmd.Parameters.Add(param);
+            cmd.Parameters.AddWithValue("@Continent", user_input);
 
             MySqlDataReader rdr = cmd.ExecuteReader();
 
@@ -628,13 +620,14 @@
             {
                 Console.WriteLine(rdr["Name"]+" --- "+rdr["HeadOfState"]);
             }
-
-            conn.Close();
+            rdr.Close();
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }
+
+        conn.Close();
         Console.WriteLine("Done.");
     }
 }</code>
@@ -668,7 +661,7 @@
 END //
 DELIMITER ;</code>
         <para>
-      Test the Stored Procedure wors as expec ted by typing the
+      Test the Stored Procedure works as expected by typing the
       following into the MySQL Client program:
     </para>
         <codeInline>CALL country_hos('Europe');</codeInline>
@@ -702,10 +695,8 @@
       shown in the following code snippet:
     </para>
         <code>
-MySqlParameter param = new MySqlParameter();
-param.ParameterName = "@con";
-param.Value = "Europe";
-cmd.Parameters.Add(param);</code>
+cmd.Parameters.AddWithValue("@con", "Europe");
+</code>
         <para>
       The value of the parameter <literal>@con</literal> could more
       realistically have come from a user input control, but for
@@ -743,22 +734,22 @@
             string rtn = "country_hos";
             MySqlCommand cmd = new MySqlCommand(rtn, conn);
             cmd.CommandType = CommandType.StoredProcedure;
-            MySqlParameter param = new MySqlParameter();
-            param.ParameterName = "@con";
-            param.Value = "Europe";
-            cmd.Parameters.Add(param);
+
+            cmd.Parameters.AddWithValue("@con", "Europe");
 
             MySqlDataReader rdr = cmd.ExecuteReader();
             while (rdr.Read())
             {
                 Console.WriteLine(rdr[0] + " --- " + rdr[1]);
             }
-            conn.Close();
+            rdr.Close();
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.ToString());
         }
+
+        conn.Close();
         Console.WriteLine("Done.");
     }
 }</code>
@@ -794,7 +785,8 @@
       to use the  Membership and Role Providers. It assumes that
       you have MySQL Server installed, along with  and Microsoft
       Visual Studio. This tutorial was tested with  6.0.4 and
-      Microsoft Visual Studio 2008 Professional Edition.
+      Microsoft Visual Studio 2008 Professional Edition. It is
+      recommmended you use 6.0.4 or above for this tutorial.
     </para>
         <list class="ordered">
           <listItem>
@@ -1002,7 +994,7 @@
           </listItem>
           <listItem>
             <para>
-          In the ASP.NET Web Site Administration Tool click on the
+          In the ASP.NET Web Site Administration Tool, click the
            tab. Now that both the
           Membership and Role Provider are enabled you will see links
           for creating roles and users. Click the  link.
@@ -1064,7 +1056,7 @@
       <content>
         <para>
        from version 6.1 has included a MySQL Session State
-      Provider. This provider allows you to store session state in a
+      Provider. This provider enables you to store session state in a
       MySQL database. The following tutorial shows you how to prepare to
       use the MySQL Session State Provider, and then store session data
       into the MySQL database. This tutorial uses Microsoft Visual
@@ -1195,7 +1187,7 @@
           </listItem>
           <listItem>
             <para>
-          Still in the Design View, double click
+          Still in the Design View, double-click
           <literal>Button1</literal>. Now to the
           <literal>Button1_Click</literal> event handler add code some
           the handler resembles the following:
@@ -1215,7 +1207,7 @@
           </listItem>
           <listItem>
             <para>
-          In Design View double click <literal>Button2</literal> to add
+          In Design View double-click <literal>Button2</literal> to add
           its click event handler. This button needs to clear text from
           the text box. The code to do this is as follows:
         </para>
@@ -1232,7 +1224,7 @@
           </listItem>
           <listItem>
             <para>
-          In the Desin View double click <literal>Button3</literal> and
+          In the Design View double-click <literal>Button3</literal> and
           modify the click handler as follows:
         </para>
             <code>
@@ -1328,12 +1320,13 @@
       This requires a significant amount of code, but ASP.NET reduces
       this considerable by including the functionality in its Profile
       classes. The Profile Provider provides an abstraction between
-      these classes and a data source. The MySQL Profile Provider allows
-      profile data to be stored in a MySQL database. This allows the
-      profile properties to be written to a persistent store, and be
-      retrieved when required. The Profile Provider also allows profile
-      data to be managed effectively, for example it allows profiles
-      that have not been accessed since a specific date to be deleted.
+      these classes and a data source. The MySQL Profile Provider
+      enables profile data to be stored in a MySQL database. This
+      enables the profile properties to be written to a persistent
+      store, and be retrieved when required. The Profile Provider also
+      enables profile data to be managed effectively, for example it
+      enables profiles that have not been accessed since a specific date
+      to be deleted.
     </para>
         <para>
       The following steps show you how you can select the MySQL Profile
@@ -1417,9 +1410,9 @@
 </code>
             <para>
           Note that <literal>anonymousIdentification</literal> has been
-          set to true. This allows users who have not been authenticated
-          to use profiles. They are identified by a GUID in a cookie
-          rather than by user name.
+          set to true. This enables users who have not been
+          authenticated to use profiles. They are identified by a GUID
+          in a cookie rather than by user name.
         </para>
           </listItem>
         </list>
@@ -1591,7 +1584,7 @@
         <list class="ordered">
           <listItem>
             <para>
-          In the Solution Explorer, right click on your application and
+          In the Solution Explorer, right-click your application and
           select <ui>Add</ui>, <ui>New Item...</ui>.
           From 
           select . Click
@@ -1621,7 +1614,7 @@
             <para>
           You can now select the connection you made earlier to the
           World database. If you have not already done so, you can
-          create the new connection at this time by clicking on
+          create the new connection at this time by clicking
           <math>New Connection...</math>. For further
           instructions on creating a connection to a database see
           <link xlink:href="9f3f194e-ad35-4379-b04d-5dce4b34ce6a#connector-net-visual-studio-making-a-connection">Making a connection</link>.
@@ -1793,7 +1786,7 @@
         <list class="ordered">
           <listItem>
             <para>
-          Double click the form to access its code.
+          Double-click the form to access its code.
         </para>
           </listItem>
           <listItem>
@@ -1845,8 +1838,8 @@
         <list class="ordered">
           <listItem>
             <para>
-          In the Form Designer click on the Save icon in the Form
-          toolbar and ensure that its Enabled property is set to True.
+          In the Form Designer, click the Save icon in the Form toolbar
+          and ensure that its Enabled property is set to True.
         </para>
             <mediaLink>
               <para />
@@ -1857,14 +1850,14 @@
           </listItem>
           <listItem>
             <para>
-          Double click the Save icon in the Form toolbar to display its
+          Double-click the Save icon in the Form toolbar to display its
           code.
         </para>
           </listItem>
           <listItem>
             <para>
           You now need to add code to ensure that data is saved to the
-          database when the save button is click in the application.
+          database when the save button is clicked in the application.
         </para>
             <mediaLink>
               <para />
@@ -1944,7 +1937,7 @@
           </listItem>
           <listItem>
             <para>
-          Click on Toolbox. From the list of controls select
+          Click Toolbox. From the list of controls select
           . Drag and drop the control
           to a location beneath the text on your web page.
         </para>
@@ -2039,7 +2032,7 @@
         <list class="ordered">
           <listItem>
             <para>
-          In the Design view panel, double click on any blank area. This
+          In the Design view panel, double-click any blank area. This
           brings up the  method.
         </para>
           </listItem>
@@ -2101,7 +2094,7 @@
         <list class="ordered">
           <listItem>
             <para>
-          In the Design view double click on the
+          In the Design view, double-click the
            control. This causes its
            code to be
           displayed. This method is called when a user selects an item
@@ -2383,7 +2376,7 @@
     in the wrong certificate being used. To alleviate this situation,
     there is an optional Certificate Thumbprint parameter that can
     additionally be specified as part of the connection string. As
-    mentioned before, you can double-click on a certificate in the
+    mentioned before, you can double-click a certificate in the
     Microsoft Management Console to display the certificate's details.
     When the Certificate dialog is displayed click the
      tab and scroll down to see the
@@ -2406,5 +2399,402 @@
   </para>
       </content>
     </section>
+    <section address="connector-net-tutorials-mysqlscript">
+      <title>Tutorial: Using MySqlScript</title>
+      <content>
+        <autoOutline />
+        <para>
+    In this tutorial you will learn how to use the
+     class. This class enables you to
+    execute a series of statements. Depending on the circumstances, this
+    can be more convenient than using the
+     approach.
+  </para>
+        <para>
+    Further details of the  class can
+    be found in the reference documentation supplied with .
+  </para>
+        <para>
+    If you wish to run the example programs in this tutorial, you will
+    need to set up a simple test database and table. This can be achived
+    using the MySQL Command Line Client or MySql Workbench. Commands for
+    the MySQL Command Line Client are given here:
+  </para>
+        <list class="ordered">
+          <listItem>
+            <para>
+              <literal>CREATE DATABASE TestDB;</literal>
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              <literal>USE TestDB;</literal>
+            </para>
+          </listItem>
+          <listItem>
+            <para>
+              <literal>CREATE TABLE TestTable (id INT NOT NULL PRIMARY KEY
+        AUTO_INCREMENT, name VARCHAR(100));</literal>
+            </para>
+          </listItem>
+        </list>
+        <para>
+    The main method of the  class is
+    the  method. This method causes the
+    script (sequence of statements) assigned to the
+     property of the MySqlScript object to be
+    executed. Note the  property can be set
+    through the  constructor or via
+    the  property.
+     returns the number of statements
+    executed.
+  </para>
+        <para>
+    The  object will execute the
+    specified script on the connection set via the
+     property. Again, this property can
+    be set directly or through the 
+    constructor. The following code snipets illustrate this:
+  </para>
+        <code>
+string sql = "SELECT * FROM TestTable";
+...
+MySqlScript script = new MySqlScript(conn, sql);
+...
+MySqlScript script = new MySqlScript();
+script.Query = sql;
+script.Connection = conn;
+...
+script.Execute();
+</code>
+        <para>
+    The MySqlScript class has several events associated with it. There
+    are:
+  </para>
+        <list class="ordered">
+          <listItem>
+            <para>
+        Error - generated in an error occurs.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        ScriptCompleted - generated when the script successfully
+        completes execution.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        StatementExecuted - generated after each statement is executed.
+      </para>
+          </listItem>
+        </list>
+        <para>
+    It is possible to assign event handlers to each of these events.
+    These user-provided routies will be called back should the connected
+    event occur. The following code shows how the event handlers are set
+    up.
+  </para>
+        <code>
+script.Error += new MySqlScriptErrorEventHandler(script_Error);
+script.ScriptCompleted += new EventHandler(script_ScriptCompleted);
+script.StatementExecuted += new MySqlStatementExecutedEventHandler(script_StatementExecuted);
+</code>
+        <para>
+    In VisualStudio you can use tab completion to fill out stub routines
+    for you, to save typing. To do this start by typing, for example,
+    . Then press , and
+    then press  again. The assignment will be
+    completed, and a stub event handler created. A complete working
+    example is shown below:
+  </para>
+        <code>
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using System.Data;
+using MySql.Data;
+using MySql.Data.MySqlClient;
+
+namespace MySqlScriptTest
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            string connStr = "server=localhost;user=root;database=TestDB;port=3306;password=******;";
+            MySqlConnection conn = new MySqlConnection(connStr);
+
+            try
+            {
+                Console.WriteLine("Connecting to MySQL...");
+                conn.Open();
+
+                string sql = "INSERT INTO TestTable(name) VALUES ('Superman');" +
+                             "INSERT INTO TestTable(name) VALUES ('Batman');" +
+                             "INSERT INTO TestTable(name) VALUES ('Wolverine');" +
+                             "INSERT INTO TestTable(name) VALUES ('Storm');";
+
+                MySqlScript script = new MySqlScript(conn, sql);
+                
+                script.Error += new MySqlScriptErrorEventHandler(script_Error);
+                script.ScriptCompleted += new EventHandler(script_ScriptCompleted);
+                script.StatementExecuted += new MySqlStatementExecutedEventHandler(script_StatementExecuted);
+                
+                int count = script.Execute();
+
+                Console.WriteLine("Executed " + count + " statement(s).");
+                Console.WriteLine("Delimiter: " + script.Delimiter);
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.ToString());
+            }
+
+            conn.Close();
+            Console.WriteLine("Done.");
+        }
+
+        static void script_StatementExecuted(object sender, MySqlScriptEventArgs args)
+        {
+            Console.WriteLine("script_StatementExecuted");    
+        }
+
+        static void script_ScriptCompleted(object sender, EventArgs e)
+        {
+            /// EventArgs e will be EventArgs.Empty for this method 
+            Console.WriteLine("script_ScriptCompleted!");
+        }
+
+        static void script_Error(Object sender, MySqlScriptErrorEventArgs args)
+        {
+            Console.WriteLine("script_Error: " + args.Exception.ToString());
+        }
+    }
+}
+</code>
+        <para>
+    Note that in the 
+    event handler, the  parameter
+    <literal>e</literal> will be <literal>EventArgs.Empty</literal>. In
+    the case of the <literal>ScriptCompleted</literal> event there is no
+    additional data to be obtained, which is why the event object is
+    <literal>EventArgs.Empty</literal>.
+  </para>
+      </content>
+    </section>
+    <section address="connector-net-tutorials-mysqlscript-delimiter">
+      <title>Using Delimiters with MySqlScript</title>
+      <content>
+        <para>
+      Depending on the nature of the script, you made need control of
+      the delimiter used to separate the statements that will make up a
+      script. The most common example of this is where you have a
+      multi-statement stored routine as part of your script. In this
+      case if the default delimiter of  is used you will
+      get an error when you attempt to execute the script. For example,
+      consider the following stored routine:
+    </para>
+        <code>
+CREATE PROCEDURE test_routine() 
+BEGIN 
+    SELECT name FROM TestTable ORDER BY name;
+    SELECT COUNT(name) FROM TestTable;
+END
+</code>
+        <para>
+      This routine actually needs to be executed on the MySQL Server as
+      a single statement. However, with the default delimiter of
+      , the  class
+      would interpret the above as two statements, the first being:
+    </para>
+        <code>
+CREATE PROCEDURE test_routine() 
+BEGIN 
+    SELECT name FROM TestTable ORDER BY name;
+</code>
+        <para>
+      Executing this as a statement would generate an error. To solve
+      this problem  supports the
+      ability to set a different delimiter. This is achieved through the
+       property. For example, you could
+      set the delimiter to , in which case the above
+      stored routine would no longer generate an error when executed.
+      Multiple statements can be delimited in the script, so for
+      example, you could have a three statement script such as:
+    </para>
+        <code>
+string sql = "DROP PROCEDURE IF EXISTS test_routine??" +
+             "CREATE PROCEDURE test_routine() " + 
+             "BEGIN " + 
+             "SELECT name FROM TestTable ORDER BY name;" + 
+             "SELECT COUNT(name) FROM TestTable;" +
+             "END??" +
+             "CALL test_routine()";
+</code>
+        <para>
+      You can change the delimiter back at any point by setting the
+       property. The following code shows
+      a complete working example:
+    </para>
+        <code>
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using MySql.Data;
+using MySql.Data.MySqlClient;
+
+namespace ConsoleApplication8
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            string connStr = "server=localhost;user=root;database=TestDB;port=3306;password=******;";
+            MySqlConnection conn = new MySqlConnection(connStr);
+
+            try
+            {
+                Console.WriteLine("Connecting to MySQL...");
+                conn.Open();
+
+                string sql =    "DROP PROCEDURE IF EXISTS test_routine??" +
+                                "CREATE PROCEDURE test_routine() " + 
+                                "BEGIN " + 
+                                "SELECT name FROM TestTable ORDER BY name;" + 
+                                "SELECT COUNT(name) FROM TestTable;" +
+                                "END??" +
+                                "CALL test_routine()";
+
+                MySqlScript script = new MySqlScript(conn);
+            
+                script.Query = sql;
+                script.Delimiter = "??";
+                int count = script.Execute();
+                Console.WriteLine("Executed " + count + " statement(s)");
+                script.Delimiter = ";";
+                Console.WriteLine("Delimiter: " + script.Delimiter);
+                Console.WriteLine("Query: " + script.Query);
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.ToString());
+            }
+
+            conn.Close();
+            Console.WriteLine("Done.");
+        }
+    }
+}
+</code>
+      </content>
+    </section>
+    <section address="connector-net-tutorials-efmodel-ddl">
+      <title>Tutorial: Generating MySQL DDL from an Entity Framework Model</title>
+      <content>
+        <para>
+    In this tutorial you will learn how to create MySQL DDL from an
+    Entity Framework model. You will need to use Visual Studio 2010 and
+     6.3 to carry out this tutorial.
+  </para>
+        <list class="ordered">
+          <listItem>
+            <para>
+        Create a new console application in Visual Studio 2010.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        Using the  add a reference
+        to <legacyBold>MySql.Data.Entity</legacyBold>.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        From the  select
+        <ui>Add</ui>, <ui>New Item</ui>. In the
+         dialog select . Select  and click <math>Add</math>. The
+         dialog will be displayed.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        In the  dialog select
+        . Click
+        <math>Finish</math>. A blank model will be created.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        Create a simple model. A single Entity will do for the purposes
+        of this tutorial.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        In the  panel select
+        <ui>ConceptualEntityModel</ui> from the drop-down
+        listbox.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        In the  panel, locate the
+         in the category
+        .
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        For the  property select
+        <ui>SSDLToMySQL.tt(VS)</ui> from the drop-down
+        listbox.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        Save the solution.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        Right-click an empty space in the model design area. The
+        context-sensitive menu will be displayed.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        From the context-sensitive menu select <ui>Generate
+        Database from Model</ui>. The  dialog will be displayed.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        In the  dialog
+        select an existing connection, or create a new connection to a
+        server. Select an appropriate radio button to show or hide
+        sensitive data. For the purposes of this tutorial you can select
+         (although you may not want to do this
+        for commercial applications).
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        Click <math>Next</math>. MySQL compatible DDL code
+        will be generated. Click <math>Finish</math> to exit
+        the wizard.
+      </para>
+          </listItem>
+        </list>
+        <para>
+    You have seen how to create MySQL DDL code from an Entity Framework
+    model.
+  </para>
+      </content>
+    </section>
   </developerConceptualDocument>
 </topic>
\ No newline at end of file

=== modified file 'Documentation/Users Guide/connector-net-versions.aml'
--- a/Documentation/Users Guide/connector-net-versions.aml	2009-12-15 21:58:48 +0000
+++ b/Documentation/Users Guide/connector-net-versions.aml	2010-07-22 19:09:34 +0000
@@ -9,66 +9,71 @@
         <list class="bullet">
           <listItem>
             <para>
-        Connector/NET 1.0 includes support for MySQL 4.0, MySQL 4.1,
-        MySQL 5.0 features, and full compatibility with the ADO.NET
-        driver interface.
-      </para>
-          </listItem>
-          <listItem>
-            <para>
-        Connector/NET 5.0 includes support for MySQL 4.0, MySQL 4.1,
-        MySQL 5.0 and MySQL 5.1 features. Connector/NET 5.0 also
-        includes full support for the ADO.Net 2.0 interfaces and
-        subclasses, includes support for the usage advisor and
-        performance monitor (PerfMon) hooks.
-      </para>
-          </listItem>
-          <listItem>
-            <para>
-        Connector/NET 5.1 includes support for MySQL 4.0, MySQL 4.1,
-        MySQL 5.0, MySQL 5.1 and MySQL 5.4 features. Connector/NET 5.1
-        also includes support for a new membership/role provider,
-        Compact Framework 2.0, a new stored procedure parser and
-        improvements to <literal>GetSchema</literal>. Connector/NET 5.1
-        also includes the Visual Studio Plugin as a standard installable
-        component.
-      </para>
-          </listItem>
-          <listItem>
-            <para>
-        Connector/NET 5.2 includes support for MySQL 4.1, MySQL 5.0,
-        MySQL 5.1 and MySQL 5.4 features. Connector/NET 5.2 also
-        includes support for a new membership/role provider, Compact
-        Framework 2.0, a new stored procedure parser and improvements to
+        Connector/NET 1.0 includes support for MySQL Server 4.0, 4.1,
+        and 5.0 features, and full compatibility with the ADO.NET driver
+        interface.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        Connector/NET 5.0 includes support for MySQL Server 4.0, 4.1,
+        5.0 and 5.1 features. Connector/NET 5.0 also includes full
+        support for the ADO.Net 2.0 interfaces and subclasses, includes
+        support for the usage advisor and performance monitor (PerfMon)
+        hooks.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        Connector/NET 5.1 includes support for MySQL Server 4.0, 4.1,
+        5.0, 5.1, 5.4 and 5.5 features. Connector/NET 5.1 also includes
+        support for a new membership/role provider, Compact Framework
+        2.0, a new stored procedure parser and improvements to
+        <literal>GetSchema</literal>. Connector/NET 5.1 also includes
+        the Visual Studio Plugin as a standard installable component.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        Connector/NET 5.2 includes support for MySQL Server 4.1, 5.0,
+        5.1, 5.4, and 5.5 features. Connector/NET 5.2 also includes
+        support for a new membership/role provider, Compact Framework
+        2.0, a new stored procedure parser and improvements to
         <literal>GetSchema</literal>. Connector/NET 5.2 also includes
         the Visual Studio Plugin as a standard installable component.
       </para>
           </listItem>
           <listItem>
             <para>
-        Connector/NET 6.0 includes support for MySQL 4.1, MySQL 5.0,
-        MySQL 5.1 and MySQL 5.4.
+        Connector/NET 6.0 includes support for MySQL Server 4.1, 5.0,
+        5.1, 5.4 and 5.5.
       </para>
           </listItem>
           <listItem>
             <para>
-        Connector/NET 6.1 includes support for MySQL 4.1, MySQL 5.0,
-        MySQL 5.1, MySQL 5.4. Important new features include the MySQL
+        Connector/NET 6.1 includes support for MySQL Server 4.1, 5.0,
+        5.1, 5.4, and 5.5. Important new features include the MySQL
         Website Configuration Tool and a Session State Provider.
       </para>
           </listItem>
           <listItem>
             <para>
-        Connector/NET 6.2 includes support for MySQL 4.1, MySQL 5.0,
-        MySQL 5.1, MySQL 5.4. Important new features include a new
-        logging system and client SSL certificates. Connector/NET 6.2 is
+        Connector/NET 6.2 includes support for MySQL Server 4.1, 5.0,
+        5.1, 5.4, and 5.5. Important new features include a new logging
+        system and client SSL certificates. Connector/NET 6.2 is
         currently available as a Beta release.
       </para>
           </listItem>
           <listItem>
             <para>
-        Connector/NET 6.3 includes support for MySQL 5.0, MySQL 5.1,
-        MySQL 5.4. Connector/NET 6.3 is not yet available.
+        Connector/NET 6.3 includes support for MySQL Server 5.0, 5.1,
+        5.4, and 5.5. Important new features include integration with
+        Visual Studio 2010, such as availability of DDL T4 template for
+        Entity Framework, and a custom MySQL SQL Editor. Other features
+        include refactored transaction scope: Connector/NET now supports
+        nested transactions in a scope where they use the same
+        connection string. Connector/NET 6.3 is available as a Beta
+        release.
       </para>
           </listItem>
         </list>
@@ -143,7 +148,7 @@
               <para>2.x+</para>
             </entry>
             <entry>
-              <para>4.0, 4.1, 5.0, 5.1, 5.4</para>
+              <para>4.0, 4.1, 5.0, 5.1, 5.4, 5.5</para>
             </entry>
           </row>
           <row>
@@ -157,7 +162,7 @@
               <para>2.x+</para>
             </entry>
             <entry>
-              <para>4.1, 5.0, 5.1, 5.4</para>
+              <para>4.1, 5.0, 5.1, 5.4, 5.5</para>
             </entry>
           </row>
           <row>
@@ -171,7 +176,7 @@
               <para>2.x+</para>
             </entry>
             <entry>
-              <para>4.1, 5.0, 5.1, 5.4</para>
+              <para>4.1, 5.0, 5.1, 5.4, 5.5</para>
             </entry>
           </row>
           <row>
@@ -185,7 +190,7 @@
               <para>2.x+</para>
             </entry>
             <entry>
-              <para>4.1, 5.0, 5.1, 5.4</para>
+              <para>4.1, 5.0, 5.1, 5.4, 5.5</para>
             </entry>
           </row>
           <row>
@@ -199,7 +204,7 @@
               <para>2.x+</para>
             </entry>
             <entry>
-              <para>4.1, 5.0, 5.1, 5.4</para>
+              <para>4.1, 5.0, 5.1, 5.4, 5.5</para>
             </entry>
           </row>
           <row>
@@ -210,10 +215,10 @@
               <para>2.x+</para>
             </entry>
             <entry>
-              <para>2.x+</para>
+              <para>2.x+, 4.x+ for VS 2010 support</para>
             </entry>
             <entry>
-              <para>5.0, 5.1, 5.4</para>
+              <para>5.0, 5.1, 5.4, 5.5</para>
             </entry>
           </row>
         </table>

=== modified file 'Documentation/Users Guide/connector-net-visual-studio.aml'
--- a/Documentation/Users Guide/connector-net-visual-studio.aml	2009-12-15 21:58:48 +0000
+++ b/Documentation/Users Guide/connector-net-visual-studio.aml	2010-07-22 19:09:34 +0000
@@ -4,6 +4,54 @@
       <title>Connector/NET Visual Studio Integration</title>
       <content>
         <autoOutline />
+        <para>
+    When  is installed on Microsoft Windows, Visual Studio
+    integration components are also installed and initialized. This
+    enables the developer to work seamlessly with  in the familiar
+    Visual Studio environment, as described in the following sections of
+    the manual.
+  </para>
+        <para>
+     supports Visual Studio versions 2005, 2008, and 2010.
+    However, only  version 6.3 fully integrates with Visual Studio
+    2010, although applications using earlier versions of the connector
+    can be built with the Visual Studio 2010 environment using .NET 2.x
+    frameworks.
+  </para>
+        <para>
+    Visual Studio 2010 support was introduced with  6.3.2. From
+    version 6.3.2 the connector ships with both .NET 2.x and .NET 4.x
+    versions of the entity framework support files,
+    <legacyBold>mysql.data.ef.dll</legacyBold> and <legacyBold>
+    mysql.visualstudio.dll</legacyBold>. The .NET 4.x versions need to be
+    shipped to enable new integration features supported in Visual
+    Studio 2010, including:
+  </para>
+        <list class="bullet">
+          <listItem>
+            <para>
+        New DDL T4 template for the Entity Framework (EF) - This enables
+        developers to design an EF model from scratch and use the native
+        Visual Studio 2010 facility to generate MySQL DDL from that
+        model. This is done by creating the model, and with the model
+        open, choosing the SSDLToMySQL template in the properties
+        window. The correct DDL is then generated. The developer can
+        then save this code as a <legacyBold>.mysql</legacyBold> file in
+        their project and execute it against the MySQL server.
+      </para>
+          </listItem>
+          <listItem>
+            <para>
+        New SQL Editor - A new SQL editor has been included that enables
+        connections to servers to execute SQL. This is activated by
+        creating a new file with a <legacyBold>.mysql</legacyBold>
+        extension. A new template is also included to allow creation of
+        this file type using the Visual Studio 2010 main menu item
+        <ui>File</ui>, <ui>New</ui>. Note that the
+        MySQL SQL Editor is also available in 2005 and 2008.
+      </para>
+          </listItem>
+        </list>
       </content>
     </section>
     <section address="connector-net-visual-studio-making-a-connection">
@@ -26,7 +74,7 @@
           </listItem>
           <listItem>
             <para>
-          Right-click on the Data Connections node, and choose the
+          Right-click the Data Connections node, and choose the
           <ui>Add Connection...</ui> menu item.
         </para>
           </listItem>
@@ -105,13 +153,13 @@
         <para>
       The Table Designer can be accessed through a mouse action on
       table-type node of Server Explorer. To create a new table,
-      right-click on the  node (under the
+      right-click the  node (under the
       connection node) and choose the <ui>Create Table</ui>
       command from the context menu.
     </para>
         <para>
-      To modify an existing table, double-click on the node of the table
-      you wish to modify, or right-click on this node and choose the
+      To modify an existing table, double-click the node of the table
+      you wish to modify, or right-click this node and choose the
       <ui>Design</ui> item from the context menu. Either of
       the commands opens the Table Designer.
     </para>
@@ -190,7 +238,7 @@
         </mediaLink>
         <para />
         <para>
-      The Table Designer main menu allows you to set a Primary Key
+      The Table Designer main menu enables you to set a Primary Key
       column, edit Relationships such as Foreign Keys, and create
       Indexes.
     </para>
@@ -226,15 +274,15 @@
         <para>
         To reorder columns, index columns or foreign key columns in the
         Column Editor, select the whole column you wish to reorder by
-        clicking on the selector column on the left of the column grid.
+        clicking the selector column on the left of the column grid.
         Then move the column by using
         + (to move the column
         up) or + (to move the
         column down) keys.
       </para>
         <para>
-        To delete a column, select it by clicking on the selector column
-        on the left of the column grid, then press the
+        To delete a column, select it by clicking the selector column on
+        the left of the column grid, then press the
          button on a keyboard.
       </para>
       </content>
@@ -317,7 +365,7 @@
       <title>Table Properties</title>
       <content>
         <para>
-        To bring up Table Properties select the table and right click to
+        To bring up Table Properties select the table and right-click to
         activate the context menu. Select <ui>Properties</ui>.
         The  dockable window will
         be displayed.
@@ -413,7 +461,7 @@
       <title>Editing Views</title>
       <content>
         <para>
-      To create a new view, right click the Views node under the
+      To create a new view, right-click the Views node under the
       connection node in Server Explorer. From the node's context menu,
       choose the <ui>Create View</ui> command. This command
       opens the SQL Editor.
@@ -434,8 +482,8 @@
         </mediaLink>
         <para />
         <para>
-      To modify an existing view, double click on a node of the view you
-      wish to modify, or right click on this node and choose the
+      To modify an existing view, double-click a node of the view you
+      wish to modify, or right-click this node and choose the
       <ui>Alter View</ui> command from a context menu. Either
       of the commands opens the SQL Editor.
     </para>
@@ -517,9 +565,8 @@
       <title>Editing Stored Procedures and Functions</title>
       <content>
         <para>
-      To create a new stored procedure, right-click on the
-       node under the connection
-      node in Server Explorer. From the node's context menu, choose the
+      To create a new stored procedure, right-click the  node under the connection node in Server
+      Explorer. From the node's context menu, choose the
        command. This command opens
       the SQL Editor.
     </para>
@@ -530,15 +577,15 @@
         </mediaLink>
         <para />
         <para>
-      To create a new stored function, right-click on the
+      To create a new stored function, right-click the
        node under the connection node in
       Server Explorer. From the node's context menu, choose the
        command.
     </para>
         <para>
       To modify an existing stored routine (procedure or function),
-      double-click on the node of the routine you wish to modify, or
-      right-click on this node and choose the  command from the context menu. Either of the
+      double-click the node of the routine you wish to modify, or
+      right-click this node and choose the  command from the context menu. Either of the
       commands opens the SQL Editor.
     </para>
         <para>
@@ -678,14 +725,14 @@
       <title>Editing Triggers</title>
       <content>
         <para>
-      To create a new trigger, right-click on the node of the table, for
+      To create a new trigger, right-click the node of the table, for
       which you wish to add a trigger. From the node's context menu,
       choose the  command. This
       command opens the SQL Editor.
     </para>
         <para>
-      To modify an existing trigger, double-click on the node of the
-      trigger you wish to modify, or right-click on this node and choose
+      To modify an existing trigger, double-click the node of the
+      trigger you wish to modify, or right-click this node and choose
       the  command from the context
       menu. Either of the commands opens the SQL Editor.
     </para>
@@ -750,19 +797,19 @@
       <title>Editing User Defined Functions (UDF)</title>
       <content>
         <para>
-      To create a new User Defined Function (UDF), right-click on the
+      To create a new User Defined Function (UDF), right-click the
        node under the connection node in Server
       Explorer. From the node's context menu, choose the <ui>Create
       UDF</ui> command. This command opens the UDF Editor.
     </para>
         <para>
-      To modify an existing UDF, double-click on the node of the UDF you
-      wish to modify, or right-click on this node and choose the
+      To modify an existing UDF, double-click the node of the UDF you
+      wish to modify, or right-click this node and choose the
       <ui>Alter UDF</ui> command from the context menu. Either
       of the commands opens the UDF Editor.
     </para>
         <para>
-      The UDF editor allows you to set the following properties:
+      The UDF editor enables you to set the following properties:
     </para>
         <list class="bullet">
           <listItem>
@@ -911,7 +958,7 @@
       <content>
         <para>
        6.1 introduced the MySQL Website Configuration Tool. This
-      is a facility available in Visual Studio that allows you to
+      is a facility available in Visual Studio that enables you to
       configure the Membership, Role, Session State and Profile
       Provider, without having to resort to editing configuration files.
       You simply run the tool, set your configuration options, and the
@@ -930,8 +977,8 @@
         </mediaLink>
         <para />
         <para>
-      Clicking on the Website Configuration Tool icon launches the
-      wizard and displays the first screen:
+      Clicking the Website Configuration Tool icon launches the wizard
+      and displays the first screen:
     </para>
         <mediaLink>
           <para />
@@ -974,7 +1021,7 @@
     </para>
         <para>
       Clicking the <math>Advanced...</math> button launches a
-      dialog that allows you to set Membership Options. These options
+      dialog that enables you to set Membership Options. These options
       dictate such variables as password length required when a user
       signs up, whether the password is encrypted and whether the user
       can reset their password or not.
@@ -1041,5 +1088,71 @@
         <para />
       </content>
     </section>
+    <section address="connector-net-sql-editor">
+      <title>MySQL SQL Editor</title>
+      <content>
+        <para>
+       6.3.2 introduced a new MySQL SQL Editor. The easiest way to
+      invoke the editor is by selecting the <ui>New</ui>,
+      <ui>File</ui> menu item from the Visual Studio main
+      menu. This displays the  dialog:
+    </para>
+        <mediaLink>
+          <para />
+          <caption>MySQL SQL Editor - New File</caption>
+          <image xlink:href="connector-net-sql-editor-new-file-dialog" />
+        </mediaLink>
+        <para />
+        <para>
+      From the  dialog select the MySQL
+      template, and then double-click the  document, or click the
+      <math>Open</math> button.
+    </para>
+        <para>
+      The MySQL SQL Editor will be displayed. You can now enter SQL code
+      as required, or connect to a MySQL server. Click the
+      <math>Connect to MySQL</math> button in the MySQL SQL
+      Editor toolbar. You can enter the connection details into the
+       dialog that is displayed.
+      You can enter the server name, user id, password and database to
+      connect to, or click the <math>Advanced</math> button to
+      select other connection string options. Click the
+      <math>Connect</math> button to connect to the MySQL
+      server. It is now possible to execute your SQL code against the
+      server by clicking the <math>Run SQL</math> button on
+      the toolbar.
+    </para>
+        <mediaLink>
+          <para />
+          <caption>MySQL SQL Editor - Query</caption>
+          <image xlink:href="connector-net-sql-editor-query" />
+        </mediaLink>
+        <para />
+        <para>
+      The results from any queries are displayed on the
+       tab. Any errors are displayed on the
+       tab.
+    </para>
+      </content>
+    </section>
+    <section address="connector-net-ddl-t4-ef">
+      <title>DDL T4 Template Macro</title>
+      <content>
+        <para>
+       6.3 introduced the ability to convert an Entity Framework
+      model to MySQL DDL code. Starting with a blank model, an entity
+      model can be developed in Visual Studio's designer. Once the model
+      has been created, the model's properties can be selected, and in
+      the Database Script Generation category of the model's properties,
+      the property  can be found. The
+      value  can then be selected
+      from the drop-down listbox. Right-clicking the model design area
+      will display a context-sensitive menu. Selecting
+       from the menu
+      will display the .
+      The wizard can then be used to generate MySQL DDL code.
+    </para>
+      </content>
+    </section>
   </developerConceptualDocument>
 </topic>
\ No newline at end of file

=== added file 'Documentation/Users Guide/media/connector-net-sql-editor-new-file-dialog.png'
Binary files a/Documentation/Users Guide/media/connector-net-sql-editor-new-file-dialog.png	1970-01-01 00:00:00 +0000 and b/Documentation/Users Guide/media/connector-net-sql-editor-new-file-dialog.png	2010-07-22 19:09:34 +0000 differ
=== added file 'Documentation/Users Guide/media/connector-net-sql-editor-query.png'
Binary files a/Documentation/Users Guide/media/connector-net-sql-editor-query.png	1970-01-01 00:00:00 +0000 and b/Documentation/Users Guide/media/connector-net-sql-editor-query.png	2010-07-22 19:09:34 +0000 differ
=== modified file 'Documentation/help.shfbproj'
--- a/Documentation/help.shfbproj	2010-04-27 18:31:24 +0000
+++ b/Documentation/help.shfbproj	2010-07-22 19:09:34 +0000
@@ -7,7 +7,7 @@
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
     <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{5c97df05-1229-4b30-9711-789d0d6ff81b}</ProjectGuid>
-    <SHFBSchemaVersion>1.8.0.3</SHFBSchemaVersion>
+    <SHFBSchemaVersion>1.9.0.0</SHFBSchemaVersion>
     <!-- AssemblyName, Name, and RootNamespace are not used by SHFB but Visual
          Studio adds them anyway -->
     <AssemblyName>Documentation</AssemblyName>
@@ -37,7 +37,7 @@
     <CleanIntermediates>False</CleanIntermediates>
     <BuildLogFile>
     </BuildLogFile>
-    <HelpFileFormat>HtmlHelp1, MSHelp2</HelpFileFormat>
+    <HelpFileFormat>HtmlHelp1, MSHelp2, MSHelpViewer</HelpFileFormat>
     <FrameworkVersion>2.0.50727</FrameworkVersion>
     <RootNamespaceContainer>True</RootNamespaceContainer>
     <RootNamespaceTitle>Reference</RootNamespaceTitle>
@@ -62,6 +62,7 @@
     </NamespaceSummaries>
     <PlugInConfigurations>
     </PlugInConfigurations>
+    <VendorName>Oracle</VendorName>
   </PropertyGroup>
   <!-- There are no properties for these two groups but they need to appear in
        order for Visual Studio to perform the build. -->
@@ -75,10 +76,10 @@
     <Folder Include="Users Guide\" />
   </ItemGroup>
   <ItemGroup>
+    <None Include="Users Guide\connector-net-connection-options.aml" />
     <None Include="Users Guide\connector-net-tutorials.aml" />
     <None Include="Users Guide\connector-net-versions.aml" />
     <None Include="Users Guide\connector-net-support.aml" />
-    <None Include="Users Guide\connector-net-programming-connection-options.aml" />
     <None Include="Users Guide\connector-net-programming.aml" />
     <None Include="Users Guide\connector-net-install.aml" />
     <None Include="Users Guide\connector-net-core.aml" />


Attachment: [text/bzr-bundle] bzr/reggie.burnett@oracle.com-20100722190934-0cd6cr4qhkjyk1j2.bundle
Thread
bzr commit into connector-net-trunk branch (reggie.burnett:899) Reggie Burnett22 Jul