MySQL 连接器/NET 开发人员指南  / 第 5 章连接器/NET 编程  /  5.15二进制和非二进制问题

5.15二进制和非二进制问题

在某些情况下,MySQL 会返回有关一个或多个列的错误元数据。更具体地说,服务器有时可以报告一个列是二进制的,而实际上不是(反之亦然)。在这些情况下,连接器几乎不可能正确识别正确的元数据。

可能返回不正确元数据的一些情况示例是:

  • 的执行SHOW PROCESSLIST。一些列以二进制形式返回,即使它们只包含字符串数据。

  • 当使用临时表处理结果集时,某些列可能会返回不正确的二进制标志。

  • 某些服务器函数DATE_FORMAT 将列错误地返回为二进制。

随着数据类型的可用性,BINARY尊重 VARBINARY服务器返回的元数据很重要。但是,某些现有应用程序可能会遇到此更改的问题,并且可以使用连接字符串选项来启用或禁用它。默认情况下,Connector/NET 尊重服务器返回的二进制标志。您可能需要对您的应用程序进行小的更改以适应此更改。

如果您的应用程序所需的更改太大,添加'respect binary flags=false'到您的连接字符串会导致连接器使用先前的行为:任何标记为字符串的列,无论二进制标志如何,都将作为字符串返回。只有特别标记为 a 的列BLOB才会返回为BLOB