【问题标题】:Delphi 5, how to retrieve data from MySQL's tis620 fields?Delphi 5,如何从MySQL的tis620字段中检索数据?
【发布时间】:2013-04-13 15:48:15
【问题描述】:

我有一个用 PHP 编写的 Web 应用程序,它使用 MySQL 作为数据库后端。

为了存储我的语言(泰语)数据,我在我的数据库表上使用了 tis620 字符集,这个设置目前非常适合我的 Web 应用程序。

我将编写一个 Windows 应用程序来访问与我的 Web 应用程序相同的数据库,但我遇到了从 tis620 字段检索数据的问题。

这是我的表的默认排序规则,使用 tis620

出于测试目的,我将 eng 字段的排序规则设置为使用 utf8

我在表中插入了一条示例记录

我使用 Oracle 的 MySQL 连接器/ODBC 5.1 作为 ODBC 驱动程序,并尝试设置为 utf8 和 tis620

我用的是Delphi 5,TTable连接数据库表

  1. 可以检索带有 utf8 的字段
  2. 无法检索带有 tis620(表的默认值)的字段

    • 虽然使用字段编辑器创建所有字段,但我只能获得 utf8 字段。

请给我一些建议,目前tis620最适合我的网络应用程序,如果我将字段转换为utf8,我会解决这个问题,但我的网络应用程序会出现问题。

那么如何使用 BDE 数据访问组件(TTable、TQuery)从 tis620 字段中检索数据?

请帮忙。

谢谢大家。

【问题讨论】:

  • Delphi 5 不支持开箱即用的 Unicode,您可能需要升级到 Delphi 2009 或更高版本才能做到这一点。
  • BDE 很古老,很久以前就被弃用了。对于 Delphi 5,您可以购买包装 MS 的 Ado 技术的单独 AdoExpress 组件。您是否仍然可以得到它们值得怀疑,但如果您已经拥有它们,它们可能对您来说是一个更好的选择。
  • 您是否在 Windows 设置中使用“泰语”作为非 Unicode 应用程序的语言?然后在您的 ODBC 驱动程序中将代码页设置为 874。

标签: mysql delphi utf-8 character-encoding collation


【解决方案1】:

您是否在 Windows 设置中使用“泰语”作为非 Unicode 应用程序的语言? Delphi 5 应用程序可以很好地同时使用泰语和英语。您不能开箱即用的是混合字符集。但我怀疑你不需要完整的 Unicode,只是为了显示一些泰语和英语内容。

然后在您的 ODBC 驱动程序中设置代码页 Win-874。

或者您可以从已弃用的 BDE 切换到更新的库。如果你坚持使用 Delphi 5,我建议测试原生支持的 FreeDAC

  • Oracle v 8.0.3 及更高版本;
  • MySQL v 3.23 及更高版本;
  • MSSQL v 2000 及更高版本;
  • MSAccess v 2000 及更高版本;
  • IBM DB2 UDB v 8 及更高版本;
  • Sybase ASA v 8 及更高版本。

当然,该库已被弃用(支持其 AnyDAC/FireDAC 演进),但它是 AFAIK 为 Delphi 5 提供的最佳解决方案之一。而且它是免费的,有源代码。恕我直言,在 Delphi 世界中,它比任何基于 ADO 的组件都更受欢迎。

如果您使用 FreeDAC,则无需配置 ODBC(当然也无需配置 BDE),因为它提供对 MySQL 的直接访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多