This page contains frequently asked questions about dotConnect for MySQL. When you have a question first of all please browse through this list. If this page does not contain the answer, refer to page.
What is the difference between the Standard and Professional editions? The Standard Edition represents a fully-featured ADO.NET data provider with design time support and advanced classes. The Professional Edition adds more classes, tools, technologies, and integration capabilities. The following list briefly enumerates main advantages of Professional Edition.
Entity Framework support allows you to employ the latest conceptual technology from Microsoft.
LINQ to MySQL support allows you to focus on objects instead of relational data in database application development.
MySqlLoader class serves to load external data into the MySQL database extremely fast.
MySqlDump class serves to store a database or its parts as a script and to restore database from the generated script.
DataLink class serves for universal cross-form data binding.
Powerful MySqlDataTable component as all-in-one table data access solution.
MySqlDataSet class allows using typed and untyped provider-specific datasets.
DataSet Wizard greatly simplifies process of generating datasets in your application.
DataSet Manager and DataSet Editor help managing the datasets.
Support for DBMonitor that performs per-component tracing of database events such as SQL statement execution, commit, rollback, etc.
Enterprise Library support allows you to take advantage of Data Access Application Block functionality.
ASP.NET 2.0 providers support allows using the dotConnect for MySQL in ASP.NET 2.0 provider model.
To test this functionality use the Trial Edition, which incorporates all aforementioned features.
What is the difference between the Professional and Developer editions? The Developer Edition includes everything from the Professional Edition plus Standard Edition of dbForge Fusion for MySQL, an advanced add-in for designing databases and easily manipulating data and schema objects from your IDE. dbForge Fusion for MySQL greatly speeds up the development process every time you have interact with your database.
Installation and deployment
I installed dotConnect for MySQL trial, then I have bought and installed purchased version, but something went wrong. Make sure you had uninstalled the trial version correctly. There should be no old (trial) assemblies present in your system. Uninstall dotConnect for MySQL and check your Global Assembly Cache and local folders for Devart.* assemblies. Remove all Devart.* files and reinstall dotConnect for MySQL.
To upgrade to newer version I have to uninstall dotConnect for MySQL first. How do I do it right? Close all running IDEs and help collections, then choose Uninstall dotConnect for MySQL link from Start menu.
You say, there are sample projects, but I can't find any. Probably you installed dotConnect for MySQL not in typical mode. Please choose typical when installing the product. All samples are installed by default in \Program Files\dotConnect\MySQL\Samples folder.
Are there any restrictions for Visual Studio Express editions? Yes, there are some. First, the provider add-in (and hence menu item) is not available. Second, components are not registered in toolbox automatically (though you can do it manually). Finally, advanced Visual Studio integration (DDEX) is not available, except Microsoft Web Developer 2005 Express.
What is required for my application to work on end-user machine? To deploy applications written with dotConnect for MySQL you should register necessary run-time assemblies at Global Assembly Cache for appropriate .NET Framework or place it in the folder of your application (more on that in the Deployment topic). Another way to install the *.dll files needed is to launch setup program of dotConnect for MySQL and choose "Minimal" option. Note that according to License Agreement this is the only setup mode that you can use on target machine.
How to install dotConnect for MySQL on machine that does not have Visual Studio or Delphi installed? Choose "Minimal" type when asked by the installer.
How to deploy web projects that use dotConnect for MySQL? Place Devart.Data.MySql.dll and Devart.Data.dll in the bin folder of your web project. Depending on the type of your project, you may also need the Devart.Data.MySql.Web.dll file. Another way to install the *.dll files needed is to launch setup program of dotConnect for MySQL on a target machine and choose "Minimal" option.
Subscriptions and Upgrades
I have a registered version of dotConnect for MySQL. Will I need to pay to upgrade to future versions?
Since dotConnect for MySQL 4.00, all upgrades to future versions are free to users with an active dotConnect for MySQL Subscription.
What are the benefits of the dotConnect for MySQL Subscription Program?
The dotConnect for MySQL Subscription Program is an annual maintenance and support service for dotConnect for MySQL users.
Users with a valid dotConnect for MySQL Subscription get the following benefits:
Access to new versions of dotConnect for MySQL when they are released
Access to all dotConnect for MySQL updates and bug fixes
Product support through the dotConnect for MySQL Priority Support program
Notification of new product versions
Priority Support is an advanced product support program which offers you expedited individual assistance with dotConnect for MySQL-related questions from the dotConnect for MySQL developers themselves. Priority Support is carried out over email and has a two business day response policy.
The dotConnect for MySQL Subscription Program is available for registered users of dotConnect for MySQL 4.00 and higher.
Can I use my version of dotConnect for MySQL after my Subscription expires?
Yes, you can. dotConnect for MySQL version licenses are perpetual.
How do I upgrade my projects to dotConnect for MySQL 5.00?
To upgrade your projects from version 4.x to 5.x, you can use Upgrade Wizard available in the Tools | MySQL | Upgrade menu item. This wizard updates references to the used assemblies and replaces some obsolete names with new ones. For example, CoreLab.Data became Devart.Data, CoreLab.MySql became Devart.Data.MySql, and so on.
Licensing
What is the licensing you use? dotConnect for MySQL uses .NET component licensing. To build operational application dotConnect for MySQL requires valid license. If no license is available, dotConnect for MySQL does not work.
How to embed license into my application? Usually you do not have to care about embedding license in your application. When you install dotConnect for MySQL the system is configured so that licensing is done transparently. License is automatically added to project when you place a MySqlConnection component onto a form. You may be required to add license manually. It is necessary for console applications, class libraries, some ASP.NET applications and existing projects initially built with dotConnect for MySQL version that did not use component licensing, that is, 3.20 and older. For instructions on how to add license manually refer to topic in dotConnect for MySQL help.
On opening connection I get an exception saying "License not found...". What should I do?
This generally indicates that license information could not be found, or you try to apply it in some way that does not suit the kind of application. For example:
File licenses.licx, required for dotConnect for MySQL to function properly, could not be found.
File licenses.licx is not added as embedded resource.
File App_Licenses.dll not found in ASP.NET applications.
To fix the problem determine type of your application and read corresponding section of "Licensing" topic.
On opening connection I get an exception saying "License not valid...". What should I do?
This means that license information was found but it is incorrect. It usually happens in the following cases:
The project was earlier compiled with old or trial version of dotConnect for MySQL.
File licenses.config used by a class library does not refer to launched executable.
The App_Licenses.dll belongs to other application or needs to be recompiled.
Something's wrong with the operating system or installation of dotConnect for MySQL.
If you encounter this problem delete all files from obj folder and rebuild the project. If this does not help send to our support address small compiled binary with sources so we can investigate the problem detailed.
Deployed application worked fine some time, but in some moment it started to say "Sorry, your trial period has expired". But I do not use trial version any more. Probably you compiled the application with Trial edition of dotConnect for MySQL, and deployed it with assemblies from non-trial version. In this case time limit is actual as well. To eliminate the problem just recompile the project.
How to license ASP.NET applications?
To support server-side compilation you ought to have special assembly App_Licenses.dll in the Bin directory of your site. To create this assembly execute Build Runtime Licenses command in the licenses.licx file context menu in the Solution Explorer view. Required assembly will be created automatically.
Note that this is not necessary for precompiled ASP.NET applications (if nothing is compiled on server by user request). Precompiled applications are licensed as usual applications.
How to make dotConnect for MySQL work with SQL Server 2005 Business Intelligence Solutions?
To do this install dotConnect for MySQL on same computer where SQL Server 2005 resides.
Do end-users need a license? No, end-users of your application do not require any license.
Connection pooling
I call MySqlConnection.Open(), then Close(). Physical connection is still visible by server. Isn't it a bug? No, it is not. This is Connection Pooling feature. Actual connection is not closed in order to be used later by your application. This boosts performance greatly.
I get exception "Timeout expired. The timeout period elapsed..." What to do? The full text of the exception is "Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached." It clearly states that you have run out of connections available. To solve the problem increase Max Pool Size connection string parameter value. The default value is 100. Another way to get extra connections is to clear one or all of the pools. Or you can turn connection pooling off using Pooling connection string parameter.
Method MySqlConnection.Open() succeeds, but MySqlCommand.Execute() leads to exception. How to check the connection for validity? This happens because connections in pool may become invalid for some reasons. Use MySqlConnection.Ping() method to ensure that connection is alive.
How to prevent possible pooling problems? You can clear the pool explicitly. Generally pool is cleared automatically when connections are idle or closed by server. To force the operation call ClearPool or ClearAllPools methods. Another solution is to disable the pool at all (set Pooling=false in connection string). If this does not help, the problem is not caused by pooling.
Documentation problems
How to open documentation on dotConnect for MySQL? There are several ways to open dotConnect for MySQL documentation:
Use appropriate shortcut in start menu, for instance, Start - Programs - Devart dotConnect for MySQL - dotConnect for MySQL documentation.
Use command in the IDE: Tools - MySQL - dotConnect for MySQL Help.
Position cursor on some class from Devart.Data.MySql and press F1.
I can't see the documentation in Visual Studio Help Collection. Correctly installed documentation appears as separate node in combined collection of Visual Studio and Borland Delphi. If you can't find dotConnect for MySQL node there it is because you enabled topics filtering. To reveal the node set filter to "Devart Documentation", or "(unfiltered)", or "Visual C#", etc. Another possible reason is that you installed some IDE after installation of dotConnect for MySQL. In this case use aforementioned methods to reach documentation.
All topics in CHM file are blank. This can happen due to some patches from Microsoft installed on your system. Please read this page to find possible solutions for the problem. In most cases it is enough to right-click on the CHM file, select Properties, click on the "Unblock" button and click "Apply" to show the contents.
ADO.NET Entity Framework
Are LINQ to SQL and Entity Framework supported? The Professional Edition of dotConnect for MySQL supports both LINQ to MySQL and the latest version of ADO.NET Entity Framework.
Where do I start with Entity Framework? First of all, launch the Visual Studio Entity Data Model Wizard, which generates the model, store, and mapping definitions. Follow the wizard's instructions and in the end you will have all necessary files ready for your Entity Framework application. To invoke the wizard, add new item ADO.NET Entity Data Model to your project.
Are there any demo projects to play with? Yes, dotConnect for MySQL includes two Entity Framework samples in C# and Visual Basic. The samples demonstrate how to use several entities and a relationship between them.
Miscellaneous
How to obtain autogenerated value of autoincrement field after INSERT statement? There are several ways to do it:
Use MySqlCommand.InsertId property.
Execute SELECT last_insert_id() statement.
I get concurrency error when modifying records using MySqlDataAdapter or MySqlDataTable. What can be wrong? This can happen when MySqlCommandBuilder generates a query without primary key field. To avoid it use custom update command instead of generated by MySqlCommandBuilder. This problem should not take place if primary key field participates in SELECT statement.
No components can be found in the toolbox. This can happen if the installation encountered some problems. You can add the components to toolbox manually. This procedure is described in the Installation article in the documentation. Note that Microsoft Web Developer 2005 Express edition does not allow working with toolbox at all.
dotConnect for MySQL components in Visual Studio .NET 2005 are grey... Make sure you're in Component Designer view. Do not confuse with Designer view. To switch between views use context menu of .aspx file in Solution Explorer. This relates to Web projects only.
dotConnect for MySQL says it uses quite another version of assemblies. Delete from GAC all policy files used by dotConnect for MySQL.
SQL Server Integration Service (SSIS) can't get the list of tables in my MySQL server. This is an architecture limitation from Microsoft, SSIS understands metadata of SQL Server only. To circumvent this you have to write queries manually.
General issues related to MySQL server
It looks like MySQL server does not process BLOB fields that are bigger than some limit... Amount of data that can be transferred in single query is determined by server variable max_allowed_packet. By default this value is approximately 1 MB, which means that you can download or upload a BLOB value with size 1MB maximum. To increase this limit, assign a greater value to max_allowed_packet variable, for instance: [mysqld] max_allowed_packet=8M This fragment of my.ini file sets max_allowed_packet value to 8 megabytes.
I get "Net packets out of order" message. What is this? This means that you try to use incompatible server and client versions, which can happen when you're not in Direct mode (MySqlConnection.Direct property is false). Check that libmysql.dll library corresponds to your server. Another reason why you can receive this message is having some general troubles with the network. Check network segments and configurations.
I get "Commands out of sync" message. What is this? This message appears when you do not close MySqlDataReader and try to execute another query on same connection. To avoid the problem you can apply either of following methods:
Close the MySqlDataReader.
Close the MySqlConnection.
Set MySqlCommand.FetchAll property to true.
Cannot connect to server on %host name%... This is actual for mobile edition. Use IP of the server instead of DNS name. It is recommended to use internal IP address. For information on how to address target machine refer to network administrator.
I use transactions but nothing happens when I issue ROLLBACK. Why? In MySQL not every storage engine supports transactions. Probably you use one of them. To use transactions switch to some other storage engine, for example, InnoDB.
How to get result set from a stored procedure? This can be done in two ways. First, you can set MySqlCommand.CommandType to StoredProcedure and CommandText to name of the procedure. Second, you can set MySqlCommand.CommandType to Text and CommandText to CALL statement, for example, "CALL MyProc()", where MyProc is name of the procedure. After either setup issue MySqlCommand.ExecuteReader() method. If you need to retrieve just scalar value from stored function you can do it through parameter with Direction set to System.Data.ParameterDirection.ReturnValue. For example on how to do it refer to "Using Parameters" article in dotConnect for MySQL documentation.
What about performance? We regularly carry out performance tests on different databases with miscellaneous environments. The tests show that dotConnect for MySQL is much better than ODBC, OLEDB, and Connector/Net. Besides that dotConnect for MySQL has much more features than any data provider, including Connector/Net.
Non-latin characters in my data are not retrieved correctly. Use UTF-8 encoding. To enable it, set Connection.Unicode property to true or include Unicode=true; in connection string. Keep in mind, however, that this affects performance. So it is better to synchronize default client encoding and database objects encoding if possible.
How to connect to server behind a firewall if the port I require is blocked? Use SSH tunnelling. It is described in Using Secure Connections article of dotConnect for MySQL documentation.
Embedded server
How to specify which libmysqld.dll my application should use? The application searches for this library exactly like for any other library. This is described in reference to SDK LoadLibrary function. It may be a good idea to distribute libmysqld.dll in the same folder with your application exe file to be sure what server will be loaded.
How to provide start-up parameters for Embedded server?
This can be done in two ways: either using my.ini file or specifying data as parameters in connection string. The following example demonstrates how to employ connection string for this purpose:
User Id=root; Server Parameters=\"--basedir=c:/servers/embedded/;--datadir=c:/servers/embedded/data/;\" Embedded=True;
For more information refer to "Using Embedded Server" article in dotConnect for MySQL documentation. For additional information on what can be specified as start-up parameter refer to MySQL Server documentation.
What else do I need to get Embedded server up and running (besides libmysqld.dll)? It is recommended that you copy "share" folder from server installation to the directory where libmysqld.dll resides (basedir in the example above). Also create folder for data inside the same directory (datadir in the example above). You may want to reproduce folder structure from your server installation.
Secure connections
What types of secure connections are supported? dotConnect for MySQL supports SSL (Secure Socket Layer) and SSH (Secure SHell) connections. Detailed information on the subject can be found in Using Secure Connections article of dotConnect for MySQL documentation.
What encryption protocols are supported?
With dotConnect for MySQL you can use following protocols: DES(40), DES(56), DES(168), AES(128), AES(256), RC4(40), RC4(128), RC2(40).
I have set up SSL connection but it does not work. Why? Probably your server does not have SSL support. Check this with the following SQL statement: SHOW VARIABLES LIKE 'have_openssl' If server returns NO please visit MySQL site for instructions on how to start up required server from scratch.
DotNetNuke Data Provider for MySQL
Which dotConnect for MySQL edition can I use with DotNetNuke Data Provider for MySQL? DotNetNuke Data Provider for MySQL can be used with dotConnect for MySQL Standard, Professional, and Developer editions. You can also use Trial Edition to evaluate the product.
Can I use third party modules that are not included in DotNetNuke by default? Third party modules of DotNetNuke are not supported. You can find the list of supported modules in Readme.html for DotNetNuke Data Provider for MySQL.
I have updated my DotNetNuke installation to the latest version. Will it work with MySQL? It depends on what exactly was changed in DotNetNuke. DotNetNuke Data Provider for MySQL is guaranteed to work only with the version specified in Readme.html.