我有一个用 PHP 编写的 Web 应用程序,它使用 MySQL 作为数据库后端。
为了存储我的语言(泰语)数据,我在我的数据库表上使用了 tis620 字符集,目前这个设置非常适合我的 Web 应用程序。
我打算编写一个 Windows 应用程序来访问与我的 Web 应用程序相同的数据库,但我遇到了从 tis620 字段检索数据的问题。
这是我的表的默认排序规则,使用 tis620
出于测试目的,我将 eng 字段的排序规则设置为使用 utf8
我向表中插入了一条样本记录
我正在使用 Oracle 的 MySQL 连接器/ODBC 5.1 作为 ODBC 驱动程序,并尝试设置为 utf8 和 tis620
我正在使用 Delphi 5,TTable 来连接数据库表
- 可以检索带有 utf8 的字段
无法检索带有 tis620(表的默认值)的字段
- 尽管使用字段编辑器创建所有字段,但我只能得到 utf8 字段。
请给我一些建议,目前 tis620 最适合我的 Web 应用程序,如果我将字段转换为 utf8,我可以解决这个问题,但我的 Web 应用程序会有问题。
那么如何使用 BDE 数据访问组件(TTable、TQuery)从 tis620 字段中检索数据?
请帮忙。
谢谢大家
最佳答案
您是否在 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 的直接访问。
关于mysql - Delphi 5,如何从 MySQL 的 tis620 字段中检索数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16118370/