This is a new release, fixing recently discovered bugs.
Bugs fixed:
If an error occurred during connection to a MySQL Server,
deserializing the error message from the packet buffer caused a
NullReferenceException
to be thrown. When the
method MySqlPacket::ReadString()
attempted to
retrieve the error message, the following line of code threw the
exception:
string s = encoding.GetString(bits, (int)buffer.Position, end - (int)buffer.Position);
This was due to the fact that the encoding field had not been initialized correctly. (Bug#46844)
In the MySqlDataReader
class the
GetSByte
function returned a
byte
value instead of an
sbyte
value.
(Bug#46620)
When trying to create stored procedures from a SQL script, a
MySqlException
was thrown when attempting to
redefine the DELIMITER
:
MySql.Data.MySqlClient.MySqlException was unhandled Message="You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER' at line 1" Source="MySql.Data" ErrorCode=-2147467259 Number=1064 StackTrace: à MySql.Data.MySqlClient.MySqlStream.ReadPacket() à MySql.Data.MySqlClient.NativeDriver.ReadResult(UInt64& affectedRows, Int64& lastInsertId) à MySql.Data.MySqlClient.MySqlDataReader.GetResultSet() à MySql.Data.MySqlClient.MySqlDataReader.NextResult() à MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior behavior) à MySql.Data.MySqlClient.MySqlCommand.ExecuteReader() à MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() à MySql.Data.MySqlClient.MySqlScript.Execute()
Note: The MySqlScript
class has been fixed to
support the delimiter statement as it is found in SQL scripts.
(Bug#46429)
The MySQL Connector/NET Profile Provider,
MySql.Web.Profile.MySQLProfileProvider
,
generated an error when running on Mono. When an attempt was
made to save a string in Profile.Name
the
string was not saved to the
my_aspnet_Profiles
table. If an attempt was
made to force the save with Profile.Save()
the following error was generated:
Server Error in '/mono' Application -------------------------------------------------------------------------------- The requested feature is not implemented. Description: HTTP 500. Error processing request. Stack Trace: System.NotImplementedException: The requested feature is not implemented. at MySql.Data.MySqlClient.MySqlConnection.EnlistTransaction (System.Transactions.Transaction transaction) [0x00000] at MySql.Data.MySqlClient.MySqlConnection.Open () [0x00000] at MySql.Web.Profile.MySQLProfileProvider.SetPropertyValues (System.Configuration.SettingsContext context, System.Configuration.SettingsPropertyValueCollection collection) [0x00000] -------------------------------------------------------------------------------- Version information: Mono Version: 2.0.50727.1433; ASP.NET Version: 2.0.50727.1433
An exception was generated when using
TIMESTAMP
columns with the Entity Framework.
(Bug#46311)
MySQL Connector/NET sometimes hung, without generating an exception. This
happened if a read from a stream failed returning a 0, causing
the code in LoadPacket()
to enter an infinite
loop.
(Bug#46308)
When using MySQL Connector/NET 6.0.4 and a MySQL Server 4.1 an exception was generated when trying to execute:
connection.GetSchema("Columns", ...);
The exception generated was:
'connection.GetSchema("Columns")' threw an exception of type 'System.ArgumentException'System.Data.DataTable {System.ArgumentException} base{"Input string was not in a correct format.Couldn't store <'Select'> in NUMERIC_PRECISION Column. Expected type is UInt64."}System.Exception {System.ArgumentException}
The MySQL Connector/NET method
StoredProcedure.GetParameters(string)
ignored
the programmer's setting of the
UseProcedureBodies
option. This broke any
application for which the application's parameter names did not
match the parameter names in the Stored Procedure, resulting in
an ArgumentException
with the message
“Parameter 'foo' not found in the collection.” and
the following stack trace:
MySql.Data.dll!MySql.Data.MySqlClient.MySqlParameterCollection.GetParameterFlexible(stri ng parameterName = "pStart", bool throwOnNotFound = true) Line 459C# MySql.Data.dll!MySql.Data.MySqlClient.StoredProcedure.Resolve() Line 157 + 0x25 bytesC# MySql.Data.dll!MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(System.Data.CommandBeha vior behavior = SequentialAccess) Line 405 + 0xb bytesC# MySql.Data.dll!MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReader(System.Data.Comma ndBehavior behavior = SequentialAccess) Line 884 + 0xb bytesC# System.Data.dll!System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(System .Data.CommandBehavior behavior) + 0xb bytes System.Data.dll!System.Data.Common.DbDataAdapter.FillInternal(System.Data.DataSet dataset = {System.Data.DataSet}, System.Data.DataTable[] datatables = null, int startRecord = 0, int maxRecords = 0, string srcTable = "Table", System.Data.IDbCommand command = {MySql.Data.MySqlClient.MySqlCommand}, System.Data.CommandBehavior behavior) + 0x83 bytes System.Data.dll!System.Data.Common.DbDataAdapter.Fill(System.Data.DataSet dataSet, int startRecord, int maxRecords, string srcTable, System.Data.IDbCommand command, System.Data.CommandBehavior behavior) + 0x120 bytes System.Data.dll!System.Data.Common.DbDataAdapter.Fill(System.Data.DataSet dataSet) + 0x5f bytes
Conversion of MySQL TINYINT(1)
to
boolean
failed.
(Bug#46205, Bug#46359, Bug#41953)
When populating a MySQL database table in Visual Studio using
the Table Editor, if a VARCHAR(10)
column was
changed to a VARCHAR(20)
column an exception
was generated:
SystemArgumentException: DataGridViewComboBoxCell value is not valid. To replace this default dialog please handle the DataError Event.
In MySQL Connector/NET 6.0.4 using GetProcData
generated
an error because the parameters
data table
was only created if MySQL Server was at least version 6.0.6, or
if the UseProcedureBodies
connection string
option was set to true.
Also the DeriveParameters
command generated a
null reference exception. This was because the
parameters
data table, which was null, was
used in a for each
loop.
(Bug#45952)
The Entity Framework provider was not calling
DBSortExpression
correctly when the
Skip
and Take
methods were
used, such as in the following statement:
TestModel.tblquarantine.OrderByDescending(q => q.MsgDate).Skip(100).Take(100).ToList();
This resulted in the data being unsorted. (Bug#45723)
The EscapeString
code carried out escaping by
calling string.Replace
multiple times. This
resulted in a performance bottleneck, as for every line a new
string was allocated and another was disposed of by the garbage
collector.
(Bug#45699)
Adding the Allow Batch=False
option to the
connection string caused MySQL Connector/NET to generate the error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET character_set_results=NULL' at line 1
The MySQL Connector/NET 6.0.4 installer failed with an error. The error message generated was:
There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor.
When OK was clicked to acknowledge the error the installer exited. (Bug#45474)
A MySQL Connector/NET test program that connected to MySQL Server using the
connection string option compress=true
crashed, but only when running on Mono. The program worked as
expected when running on Microsoft Windows.
This was due to a bug in Mono. MySQL Connector/NET was modified to avoid
using WeakReferences
in the
Compressed
stream class, which was causing
the crash.
(Bug#45463)
Calling the Entity Framework SaveChanges()
method of any MySQL ORM Entity with a column type
TIME
, generated an error message:
Unknown PrimitiveKind Time
Insert into two tables failed when using the Entity Framework. The exception generated was:
The value given is not an instance of type 'Edm.Int32'
Input parameters were missing from Stored Procedures when using them with ADO.NET Data Entities. (Bug#44985)
Errors occurred when using the Entity Framework with cultures
that used a comma as the decimal separator. This was because the
formatting for SINGLE
,
DOUBLE
and DECIMAL
values
was not handled correctly.
(Bug#44455)
When attempting to connect to MySQL using the Compact Framework
version of MySQL Connector/NET, an
IndexOutOfRangeException
exception was
generated on trying to open the connection.
(Bug#43736)
When reading data, such as with a
MySqlDataAdapter
on a
MySqlConnection
, MySQL Connector/NET could potentially
enter an infinite loop in
CompressedStream.ReadNextpacket()
if
compression was enabled.
(Bug#43678)
An error occurred when building MySQL Connector/NET from source code checked out from the public SVN repository. This happened on Linux using Mono and Nant. The Mono JIT compiler version was 1.2.6.0. The Nant version was 0.85.
When an attempt was made to build (for example) the MySQL Connector/NET 5.2 branch using the command:
$ nant -buildfile:Client.build
The following error occurred:
BUILD FAILED Error loading buildfile. Encoding name 'Windows-1252' not supported. Parameter name: name
After a Reference to "C:\Program Files\MySQL\MySQL Connector Net 5.2.4\Compact Framework\MySql.Data.CF.dll" was added to a Windows Mobile 5.0 project, the project then failed to build, generating a Microsoft Visual C# compiler error.
The error generated was:
Error 2 The type 'System.Runtime.CompilerServices.CompilerGeneratedAttribute' has no constructors defined MysqlTest Error 3 Internal Compiler Error (0xc0000005 at address 5A7E3714): likely culprit is 'COMPILE'.
MySQL Connector/NET CHM documentation stated that MySQL Server 3.23 was supported. (Bug#42110)
In the case of long network inactivity, especially when connection pooling was used, connections were sometimes dropped, for example, by firewalls.
Note: The bugfix introduced a new keepalive
parameter, which prevents disconnects by sending an empty TCP
packet after a specified timeout.
(Bug#40684)
MySQL Connector/NET generated the following exception:
System.NullReferenceException: Object reference not set to an instance of an object. bei MySql.Data.MySqlClient.MySqlCommand.TimeoutExpired(Object commandObject) bei System.Threading._TimerCallback.TimerCallback_Context(Object state) bei System.Threading.ExecutionContext.runTryCode(Object userData) bei System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading._TimerCallback.PerformTimerCallback(Object state)
Calling a Stored Procedure with an output parameter through MySQL Connector/NET resulted in a memory leak. Calling the same Stored Procedure without an output parameter did not result in a memory leak. (Bug#36027)
Using a DataAdapter
with a linked
MySqlCommandBuilder
the following exception
was thrown when trying to call da.Update(DataRow[]
rows)
:
Connection must be valid and open
User Comments
Add your own comment.