3

我有一个用 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最适合我的Web应用程序,如果我将字段转换为utf8,我会解决这个问题,但我的Web应用程序会出现问题。

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

请帮忙。

感谢大家。

4

1 回答 1

3

您是否在 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 的直接访问。

于 2013-04-20T11:34:06.497 回答