第26章:连接器 / 26.2. MySQL Connector/NET / 26.2.5. MySQL Connector/NET变更史
26.2.5.1. 版本2.0.0
26.2.5.2. 版本1.0.7
26.2.5.3. 版本1.0.6
26.2.5.4. 版本1.0.5
26.2.5.5. 版本1.0.4 1-20-05
26.2.5.6. 版本1.0.3-gamma 12-10-04
26.2.5.7. 版本1.0.2-gamma 04-11-15
26.2.5.8. 版本1.0.1-beta2 04-10-27
26.2.5.9. 版本1.0.0 04-09-01
26.2.5.10. 版本0.9.0 04-08-30
26.2.5.11. 版本0.76
26.2.5.12. 版本0.75
26.2.5.13. 版本0.74
26.2.5.14. 版本0.71
26.2.5.15. 版本0.70
26.2.5.16. 版本0.68
26.2.5.17. 版本0.65
26.2.5.18. 版本0.60
26.2.5.19. 版本0.50

26.2.5.1. 版本2.0.0

·         更正了在未填充Connection.Database的情况下使用存储程序时出现的异常 (Bug #11450) 。

·         特定的残缺查询将触发“连接必须是有效和打开的”错误消息 (Bug #11490) 。

26.2.5.2. 版本1.0.7

·         调用其某一参数含有特殊字符(如“@”)的存储程序将产生异常。注意,必须启用ANSI_QUOTES才会使之成为可能 (Bug #13753) 。

·         如果语句包含对相同参数的多个引用,无法对其进行预处理 (Bug #13541) 。

·         Ping()方法不更新Connection对象的State属性 (Bug #13658) 。

26.2.5.3. 版本1.0.6

·         Nant构建序列有问题(Bug #12978)

·         如果传递的第1个值是NULL,参数的串行化操作失败 (Bug #13276) 。

·         含下述字符的字段名将导致错误:()%<>/ (Bug #13036) 。

·         MySQL Connector/NET 1.0.5安装程序不能同时安装MySQL Connector/NET 1.0.4. (Bug #12835)。

·         在Mono上MySQL Connector/NET 1.0.5不能连接 (Bug #13345) 。

26.2.5.4. 版本1.0.5

·         连接字符串中有多个主机时,MySQL Connector/NET无法与列表中的1个主机相连 (Bug #12628) 。

·         MySQL Connector/NET将新的十进制数据类型解释为字节数组 (Bug #11294) 。

·         不支持cp1250字符集 (Bug #11621) 。

·         当.NET线程池无可用的工作线程时,连接可能失败 (Bug #10637) 。

·         十进制参数导致语法错误 (Bug #11550, Bug #10486, Bug #10152)。

·         如果存储程序不含参数,调用存储程序将导致异常 (Bug #11542) 。

·         特定的残缺查询将触发“连接必须是有效和打开的”错误消息 (Bug #11490) 。

·         除了默认数据库外,MySqlCommandBuilder类不能处理引用了其他数据库中表的查询 (Bug #8382) 。

·         MySQL Connector/NET无法特定的局部设置一起正常工作 (WL#8228)。

·         未填充Connection.Database时使用存储程序导致异常 (Bug #11450) 。

·         读取TIMESTAMP列时产生异常 (Bug #7951) 。

·         用换行符隔开参数时,无法识别参数 (Bug #9722) 。

·         在初始连接上未设置连接字符串时,调用MySqlConnection.clone将导致错误 (Bug #10281) 。

·         增加了对从MySQL Connector/NET调用存储函数的支持 (Bug #10644) 。

·         MySQL Connector/NET不能连接到MySQL 4.1.14. (Bug #12771)。

·         用设计器添加了MySqlConnection对象时,无法设置ConnectionString属性 (Bug #12551, Bug #8724)。

26.2.5.5. 版本1.0.4 1-20-05

·         Bug #7243:调用准备导致异常[已更正]。

·         更正了与预处理语句有关的另一个小问题。

·         Bug #7258:MySqlCommand.Connection返回IDbConnection [已更正]。

·         Bug #7345:MySqlAdapter.Fill方法抛出错误消息:需要非负数值[已更正]。

·         Bug #7478:MySqlCommand中的克隆方法缺陷[已更正]。

·         Bug #7612:当字段为NULL时,MySqlDataReader.GetString(index)返回了非Null值[已更正]。

·         Bug #7755:如果列是无符号类型,MySqlReader.GetInt32抛出异常[已更正]。

·         Bug #7704:GetBytes不再工作[已更正]。

·         Bug #7724:引用字符“\222”在EscapeString中未被引用[已更正]。

·         更正了命名管道不能与某些Blob功能一起工作的问题。

·         更正了与共享内存连接有关的问题。

·         Bug #7436:与多个结果集有关的问题 [已更正]。

·         在API参考文档中增加了多个主题。

26.2.5.6. 版本1.0.3-gamma 12-10-04

·         使MySQL成为默认的命名管道名称。

·         现在,连接时SHOW COLLATION可用于检索完整的字符集ID列表。

·         更正了无效字符集索引:200 (Bug #6547) 。

·         安装器现在包含了多个选项,可安装至GAC中,并创建“开始”菜单项。

·         Bug #6863:MySqlCommand参数中的Int64支持[已更正]。

·         对于连接,现在无需在连接字符串上给出数据库。

·         Bug #6770:MySqlDataReader.GetChar(int i)抛出IndexOutOfRange异常[已更正]。

·         更正了因具有不同行数的多个结果集而导致的问题。

·         Bug #6983:再次抛出异常时异常堆栈跟踪丢失[已更正]。

·         更正了与使用预处理语句检测Null值有关的主要问题。

·         Bug #6902:解析存储程序参数时的错误[已更正]。

·         Bug #6668:存储程序的整数输出参数返回为字符串[已更正]。

·         Bug #7032:按文本分类的数据表中的MySqlDateTime,无数据 [已更正]。

·         Bug #7133:使用inout参数时的无效查询字符串[已更正]。

·         Bug #6831:与MySQL 4.0一起时,测试失败,原因在于表名的大小写敏感性[已更正]。

·         Bug #7132:插入DateTime导致System.InvalidCastException的抛出[已更正]。

·         Bug #6879:使用DATE_ADD-function时的InvalidCast[已更正]。

·         Bug #6634:1个打开的连接被主机系统关闭[已更正]。

·         为MySqlConnection添加了ServerThread属性以显示服务器线程ID。

·         为MySqlConnection增加了Ping方法。

·         将测试包的名称更改为MySql.Data.Tests.dll。

26.2.5.7. 版本1.0.2-gamma 04-11-15

·         更正了与MySqlBinary有关的问题,其中,无法使用字符串值更新扩展的文本列。

·         更正了使用定制安装时忽略的安装目录问题(Bug #6329)。

·         更正了设置命令文本将命令留在预处理状态的问题。

·         更正了MySqlParameter双类型处理问题(字符串parameterName,对象值)(Bug #6428)。

·         更正了填充数据集时返回零日期“0000-00-00”错误(Bug #6429)。

·         更正了调用存储程序可能会导致“Illegal mix of collations”(非法校对组合)的问题。

·         增加了charset连接字符串选项。

·         更正了#HY000“Illegal mix of collations”(非法校对组合)(latin1_swedish_ci,IMPLICIT)和(utf8_general_ (Bug #6322)问题。

·         增加了TableEditor CS和VB示例。

·         更正了关于UCS-2的Charset-map问题(Bug #6541)。

·         更新了安装器,包含了新的示例。

·         更正规了Long插入耗时很长的问题(Bug #5453)。

·         更正了对象无法被处理的问题(Bug #6649)。

·         提供方正将服务器指定的字符集用作默认字符集。

26.2.5.8. 版本1.0.1-beta2 04-10-27

·         更正了MySqlParameter(string, object)构造函数中的可能缺陷BUG #5602

·         更正了BUG #5458,在longtext列上调用GetChars将抛出异常。

·         更正了BUG #5474,无法运行存储程序来填充mysqlcommand.parameters。

·         更正了BUG #5469,设置DbType时抛出NullReferenceException。

·         更正了在关闭套接字之前连接器无法发出CMD_QUIT的问题。

·         更正了BUG #5392,MySqlCommand在字符串文本内容中发现作为参数的“?”。

·         更正了与ConnectionInternal有关的问题,其中,1个键可能会被添加多次。

·         当服务器版本为4.1.2或更高时,CP1252仅用于Latin1。

·         更正了BUG #5388,如果1行为NULL,DataReader通报所有行均为NULL。

·         虚拟化了驱动子系统,以便未来版本能轻易地支持客户端或嵌入式服务器。

·         再次使用字段缓冲,以减少内存分配并增加速度。

·         更正了相应的问题,使用接口时使用旧语法将导致问题。

·         对于写入流操作,使用PacketWriter取代Packet。

·         在CompressedStream中再分解压缩代码,以清理NativeDriver。

·         增加了用于在预处理命令上重置命令文本的测试范例。

·         更正了给定Null值时MySqlParameterCollection.Add()将抛出不明异常的问题(Bug #5621)。

·         更正了MySqlCommand()中的构造函数初始化问题(Bug #5613)。

·         更正了解析“;”字符的问题(Bug #5876)。

·         更正了在DbType设置器中丢失引用的问题(Bug #5897)。

·         更正了使用YEAR数据类型时的System.OverflowException问题(Bug #6036)。

·         增加了聚合函数测试(实际上不是缺陷)。

·         更正了浮点参数(double, numeric, single, decimal)的序列化问题(Bug #5900)。

·         IsNullable错误(Bug #5796)。

·         更正了不遵守连接字符串上给出的连接寿命的问题。

·         更正了不遵守Min Pool Size(最小池大小)的问题。

·         更正了MySqlDataReader和“show tables from ...”(从显示表)行为(Bug #5256)。

·         实施了SequentialAccess。

·         更正了发现第1个0后MySqlDateTime在所有subseq.records上设置IsZero属性的问题(Bug #6006)。

·         更正了无法正确显示中文字的问题(Bug #5288)。

·         还更正了俄文字符支持。

·         更正了Method TokenizeSql()仅将有限的有效字符用于参数的问题(Bug #6217)。

·         更正了丢失resx文件的NET Connector源(Bug #6216)。

·         更正了与检索/更新查询一起使用是会导致问题的DBNull值 (Bug #5798) 。

·         更正了仍有另一个“未设置给对象实例的对象引用”(Bug #5496)。

·         更正了PacketReader中的问题,其中,会试图在EnsureCapacity中分配错误的缓冲大小。

·         更正了GetBoolean返回错误值的问题(Bug #6227)。

·         更正了带有GetString(index)的DataReader一起读取BLOB时的IndexOutOfBounds问题(Bug #6230)。

26.2.5.9. 版本1.0.0 04-09-01

·         更正了BUG# 3889,不能正确支持Thai编码。

·         更新了很多测试范例。

·         更正了与使用压缩有关的问题。

·         将贝塔1版本的版本号扩充为1.0.0。

·         增加了用于安装器的COPYING.rtf文件。

·         删除了所有的XML注释警告(以后将更好地清理它们)。

·         删除了一些对ByteFX的最近引用。

26.2.5.10. 版本0.9.0 04-08-30

·         为预处理语句增加了测试定位器。

·         目前,所有类型的类均实施了SerializeBinary方法,用于将其数据发送给PacketWriter。

·         增加了PacketWriter类,允许将来的低内存大对象处理。

·         更正了运行预处理语句和存储程序中存在的很多小缺陷。

·         更改了多条命令,使得在执行带有特定参数(采用旧语法模式)的存储程序时不再抛出异常。

·         SingleRow现在工作正常,即使在存在限制的情况下也同样。

·         GetBytes目前仅作用在二进制列上。

·         Logger现在能够截短长的SQL命令,从而使得blob列不会“撑爆”日志。

·         主机和数据库目前的默认值为“”,除非作了其他设置。

·         更正了BUG# 5214,忽略了连接超时。

·         增加了测试范例,针对bug# 5051:GetSchema不能正确工作。

·         更正了当列为关键字时GetSchema为IsUnique返回“假”的问题。

·         MySqlDataReader GetXXX方法目前采用了字段级MySqlValue对象,不执行转换。

·         更正了BUG# 5097:DataReader为时间列返回NULL。

·         A增减了针对LOAD DATA LOCAL INFILE的测试范例。

·         增加了replacetext custom nant任务。

·         增加了CommandBuilderTest定位器。

·         为CommandBuilder增加了Last One Wins(最后一个胜出)特性。

·         更正了持续性安全信息问题。

·         更正了GetBool,使得1, true, "true"和"yes"均可表示trueWL# 2024,从而使得参数标志成为可配置的。

·         增加了"old syntax"连接字符串参数,允许使用“@”参数标记符。

·         更正了Bug #4658,MySqlCommandBuilder。

·         更正了Bug #4864,如果“Persist Security Info”(持续性安全信息)为假,ByteFX.MySqlClient将对密码进行缓冲处理。

·         在所有的源文件中更新了许可标志,以包含FLOSS异常。

·         针对目前所有的MySql类型,增加了新的.Types名称空间和具体实施。

·         增加了作为MySqlField子类的MySqlField41。

·         更改了很多类,使之能够使用新的.Types类型。

·         将enum int类型更改为Int32,将short类型更改为Int16,并将bigint类型更改为Int64。

·         增加了伪类型UInt16、UInt32和UInt64,允许创建无符号参数。

·         现在,从连接池拉出连接时,连接将被复位。

·         在驱动程序中再次分解了auth代码,使得其即能用于auth,也能用于reset。

·         在PoolingTests.cs中增加了UserReset测试。

·         现在,使用COM_CHANGE_USER从池中拉出连接时,连接将被复位。

·         实现了SingleResultSet行为。

·         实现了对unicode的支持。

·         为utf-8和ucs-2增加了字符集映射。

·         更正了Bug #4520,使用bytefx .net mysql驱动时,时间字段溢出。

·         在数据类型测试定位器中修改了时间测试,以便能够检查“hours > 24”的时间跨度。

·         更正了Bug #4505,在ByteFx.Data.MySqlClient.MySqlParameter中带有反斜杠转义的错误字符串。

·         为参数测试范例TestQuoting增加了代码,以测试反斜线符号。

·         更正了Bug #4486,与multi-word列名一起工作时,mysqlcommandbuilder失败。

·         更正了TokenizeSql中的缺陷,其中,下划线将中止获取参数名中的字符。

·         为列名空间增加了测试范例。

·         更正了bug# 4324,MySqlDataReader.GetBytes不能正确工作。

·         为DataReader测试定位器增加了GetBytes()测试范例。

·         现在,能够将InternalConnection.Configure中的所有服务器变量读入到Hashtable。

·         目前使用字符串[],用于CharSetMap中的索引映射。

·         为SQL中的carriage返回增加了CRInSQL测试范例。

·         在Driver.ctor中,将maxPacketSize设为默认值。

·         更正了bug #4442,在参数上设置MySqlDbType的操作不设置一般类型。

·         删除了过时的列类型Long和LongLong。

·         更正了bug# 4071,在连接字符串上使用“use pipe”时,抛出溢出异常。

·         将关键字“use pipe”更改为“pipe name”或“pipe”。

·         允许从单个查询读取多个结果集。

·         为ServerStatusFlags enum增加了标志属性。

·         将ServerStatus enum的名称更改为ServerStatusFlags。

·         更正了BUG #4386,插入的数据行未正确更新。

·         更正了bug #4074,错误处理表明创建了表。

·         将Packet.ReadLenInteger更改为ReadPackedLong,并增加了packet.ReadPackedInteger,它总读取用2、3、4组装的整数。

·         增加了syntax.cs测试定位器,以测试各种SQL语法缺陷。

·         更正了bug# 4149,对时间值的不当处理。现在,值“00:00:00”不再被当作Null。

·         将所有的测试包文件移到了TestSuite文件夹。

·         更正了空列会将结果信息包指针向后移的问题。

·         增加了新的nant创建脚本。

·         更正了BUG #3917,清除表名,以便能在下一GenerateSchema执行期间恰当地重新生成它。

·         更正了bug #3915,GetValues总返回0,而且总是试图复制所有字段,而不是根据所传入数组的大小。

·         实施了共享内存访问协议。

·         实施了针对的MySQL 4.1的预处理语句。

·         实施了针对MySQL 5.0的存储程序。

·         将MySqlInternalConnection重新命名为InternalConnection。

·         SQL现在被解释为字符,更正了与其他语言有关的问题。

·         增加了日志功能,并允许批连接字符串选项。

·         更正了bug #3888,设置DataAdapter属性时未设置RowUpdating事件。

·         更正了字符集映射中存在的缺陷。

·         实施了4.1鉴定。

·         改善了驱动中的open/auth代码。

·         改善了在连接过程中连接位的设置方式。

·         现在,在初始的握手阶段,将数据库名传递给了服务器。

·         将客户端的名称空间更改为MySql.Data.MySqlClient。

·         将客户端的装配名称更改为MySql.Data.dll。

·         将所有源文件中的许可文本更改为了GPL。

·         增加了MySqlClient.build Nant文件。

·         删除了mono批处理文件。

·         将一些未使用的文件移到了notused文件夹,从而使得nant创建文件能够使用通配符。

·         实施了共享内存访问。

·         对代码结构进行了较大修补。

·         现在,预处理语句能够在MySql 4.1.1和更高版本中使用。

·         对4.0、4.1.0和4.1.1完成了auth实施。

·         将名称空间从MySQL.Data.MySQLClient更改为MySql.Data.MySqlClient。

·         更正了CharSetMapping中存在的缺陷,其中,它试图将文本名称用作ints。

·         将名称空间更改为MySQL.Data.MySQLClient。

·         集成了来自UC2004的auth变动。

·         更正了在读取数据之前和值后、在datareader上调用任何GetXXX方法时不能抛出恰当异常的缺陷(感谢Luca Morelli morelli.luca@iol.it)。

·         在parameter.cs中增加了TimeSpan代码,以便能恰当地将timespan对象处理为mysql时间格式(感谢Gianluca Colombo g.colombo@alfi.it)。

·         为参数序列化代码增加了TimeStamp。防止DataAdatper不正常的更新(感谢MIchael King)。

·         更正了MySqlHelper.cs中的拼写错误(感谢Patrick Kristiansen)。

26.2.5.11. 版本0.76

·         驱动程序现在能使用握手协议中给定的字符集编号创建编码。

·         更改了命令编辑器,使之指向MySqlClient.Design。

·         更正了Version.isAtLeast中的缺陷。

·         更改了DBConnectionString,使之能够支持对MySqlConnectionString所作的更改。

·         删除了SqlCommandEditor和DataAdapterPreviewDialog。

·         在很多地方采用了新的Long返回值。

·         集成了新的CompressedStream类。

·         更改了ConnectionString并增加了多项属性,从而使之能够在MySqlClient.Design中使用。

·         更改了packet.cs,以支持ReadLenInteger中的较新长度。

·         更改了其他类,以使用MySqlConnectionString的新属性和字段。

·         现在,ConnectionInternal能够使用PING命令查看服务器是否可用。

·         将工具箱位图移到了resource/下。

·         更改field.cs,允许值直接来自行缓冲器。

·         进行了相应的更改,以使用新的driver.Send语法。

·         使用了新的信息包排队系统。

·         开始着手进行“损坏的”压缩信息包处理。

·         更正了StreamCreator中的缺陷,无法连接到主机将导致无限循环(感谢Kevin Casella)。

·         改善了connectstring处理。

·         将设计器移到了Pro产品中。

·         从command.cs删除了一些旧的、被注释掉的代码。

·         更正了与压缩有关的1个问题。

·         更正了连接对象,打开连接前抛出的异常不会使连接保持在连接状态(感谢Chris Cline)。

·         增加了GUID支持。

·         更正了序列混乱缺陷(感谢Mark Reay)。

26.2.5.12. 版本0.75

·         现在,可将Enum值作为参数值加以支持(感谢Philipp Sumi)。

·         支持Year数据类型。

·         更正了压缩问题。

·         更正了以TimeSpan作为值的参数无法恰当序列化的缺陷。

·         更正了默认ctor不能设置默认连接字符串值的缺陷。

·         为一些新成员增加了一些XML注释。

·         着手更正/改善压缩处理事宜。

·         改善了ConnectionString处理功能,使之能够与SqlClient设定的标准更好地匹配。

·         如果用户名未包含在连接字符串中,将抛出MySqlException。

·         如果在连接字符串中未指定,本地主机将用作默认主机。

·         如果在连接打开的同时试图设置连接字符串,将抛出异常。

·         对ConnectionString文档进行了小的修改。

·         删除了MultiHostStream和MySqlStream。采用Common/StreamCreator取而代之。

·         增加了对“Use Pipe”连接字符串值的支持。

·         增加了Platform类,以便能更容易地访问平台的实用工具功能。

·         更正了小的连接池缺陷,即,在IsAlive失败后,不能创建新的连接。

·         增加了Platform.cs和StreamCreator.cs。

·         更正了Field.cs,以便能恰当处理4.1版分格的时间戳。

·         将Common.Version更改为Common.DBVersion,以避免名称冲突。

·         更正了field.cs,从而使得文本列能返回正确的字段类型(感谢beni27@gmx.net)。

·         增加了MySqlError类,以提供对错误代码的一些引用(感谢Geert Veenstra)。

26.2.5.13. 版本0.74

·         增加了Unix套接字支持(感谢Mohammad DAMT [md@mt.web.id])。

·         没有可用数据时,仅调用Thread.Sleep。

·         该井了参数数据中引用字符的转义特性。

·         删除了parameter.cs中易造成误解的注释。

·         更正了连接池缺陷。

·         再次更正了相同的连接池缺陷!! ;-)

·         更正了ConnectionSTring编辑器对话框(感谢marco p (pomarc))。

·         现在,在连接字符串中支持UserId(感谢Jeff Neeley)。

·         创建非输入参数时抛出异常(感谢Ryan Gregg)。

·         增加了更多文档。

·         提供了新的MultiHostStream能力。诚挚感谢Dan Guisinger对此的贡献。是他首次提供了在连接字符串上支持多台机器的代码和观念。

·         增加了大量文档。仍有很多文档需要增加。

·         更正了与0.73有关的速度事宜。

·         更改了MySqlDataStream中的Thread.Sleep(0),以便在不需要等待时优化性能(感谢Todd German)。

·         预先将idlepools填充到了MinPoolSize。

·         个高质量MySqlPool死锁条件以及愚蠢的缺陷,其中,CreateNewPooledConnection从不为连接池添加新连接。此外,还更正了MySqlStream.ReadBytes和ReadByte,从而不再使用并非始终正确的TicksPerSecond。(感谢Matthew J. Peddlesden)。

·         修正了精度和标度(感谢Matthew J. Peddlesden)。

·         为流读取方法增加了Thread.Sleep(1),使之对CPU更友好(感谢Sean McGinnis)。

·         更正了ExecuteReader有时会返回Null的问题(感谢Lloyd Dupont)。

·         更正了与Null字段处理有关的主要缺陷(感谢Naucki)。

·         封装了针对max_allowed_packet的查询,以及Try Catch中的字符集(并设置为默认)。

·         更正了套接字未能恰当关闭的问题(感谢Steve)。

·         更正了ExecuteNonQuery不能始终返回正确值的问题。

·         更正了InternalConnection,不使用@@session.max_allowed_packet,而是使用@@max_allowed_packet。(感谢Miguel)。

·         增加了很多新XML文档行。

·         更正了SQL解析功能,不发送控查询(感谢Rory)。

·         更正了阅读器在关闭时不能unpeeking信息包的问题。

·         更正了不能处理用户变量的问题(感谢Sami Vaaraniemi)。

·         更正了MySqlPool中的循环检查功能(感谢Steve M. Brown)。

·         更正了ParameterCollection.Add方法,以与SqlClient匹配(感谢Joshua Mouch)。

·         更正了ConnectionSTring解析功能,以处理布尔类型的NO和YES,以及非小写值(感谢Naucki)。

·         增加了InternalConnection类,修改了连接池功能。

·         实现了Persist Security Info(持续性安全信息)。

·         为项目增加了security.cs和version.cs。

·         更正了Parameter.cs中的DateTime处理功能(感谢Burkhard Perkens-Golomb)。

·         更正了某些类型抛出cast异常的参数序列化问题。

·         更正了DataReader,转换所有的返回值以防止抛弃错误(感谢Keith Murray)。

·         为Command.ExecuteReader增加了代码,如果初始SQL命令抛出异常,将返回Null(感谢Burkhard