MySQL Workbench 发行说明  / MySQL Workbench 6.3 中的更改  /  MySQL Connector/NET 6.3.2 的变化(2010-05-24,测试版)

MySQL Connector/NET 6.3.2 的变化(2010-05-24,测试版)

第一个测试版。此版本修复了自 6.3.1 以来的错误。

添加或更改的功能

  • 过程缓存有一个问题,如果您创建一个过程,删除它,然后使用不同数量的参数重新创建它,则会生成异常。

    MySQL Connector/NET 已更改,因此如果使用不同数量的参数重新创建过程,它仍会被识别。(漏洞 #52562)

  • MySQL 连接器/NET 已更改为包括 MySqlDataReader.GetFieldType(string columnname). 此外, MySqlDataReader.GetOrdinal()如果未找到该列,现在在异常中包含该列的名称。(漏洞 #47467)

修正错误

  • 发生异常后,内部数据读取器 MySqlCommand.Connection.Reader未正确关闭(未设置为空)。如果随后对该命令对象执行了另一个查询,则会生成异常并显示消息已经有一个打开的 DataReader 与此连接关联,必须先将其关闭。 (漏洞 #55558)

  • TEXTMySQL Connector/NET 在用于读取包含超过 32767 字节 的列时生成异常 。(漏洞 #54040)

  • 在 MySQL Connector/NET 中,该MySqlConnection.Abort() 方法包含一个try...catch结构,带有一个空catch块。这意味着此时生成的任何异常都不会被捕获。(漏洞 #52769)

  • 过程缓存影响了 MySQL Connector/NET 性能,降低了大约 65%。这是由于 String.Format()与调试日志记录相关的 , 的不必要调用。即使日志记录被禁用,字符串仍在格式化,导致性能受损。(漏洞 #52475)

  • 如果FunctionsReturnString=true在连接字符串中使用,则不解释小数点分隔符(根据区域设置)。(漏洞 #52187)

  • 在 MySQL Connector/NET 中,类的LoadCharsetMap()函数CharSetMap设置了以下不正确的映射:

    mapping.Add("latin1", new CharacterSet("latin1", 1));

    这意味着,例如,欧元符号没有被正确处理。

    正确的映射应该是:

    mapping.Add("latin1", new CharacterSet("windows-1252", 1));

    这是因为 MySQLlatin1字符集与字符集相同windows-cp1252 ,它扩展了官方的 ISO 8859-1 或 IANA latin1。(漏洞 #51927)

  • SQL 中的非终止字符串抛出 CLR 异常而不是语法异常。(漏洞 #51788)

  • 调用ExecuteNonQuery命令对象时,发生以下异常:

    Index and length must refer to a location within the string.
    Parameter name: length

    (漏洞 #51610)

  • MySQL Connector/NET 6.3.1 安装失败。(错误 #51407,错误 #51604)

  • 当使用 table per type 继承并列出父表的内容时,查询的结果是子对象列表,即使没有具有相同父 Id 的相关子记录。(漏洞 #49850)