gpt4 book ai didi

delphi - 在ADS中找不到与dbase III通信的正确代码页

转载 作者:行者123 更新时间:2023-12-03 19:41:39 26 4
gpt4 key购买 nike

我有一个直接使用dBase III数据库的会计软件。我还获得了使用这些数据库用Delphi XE2编写的自制软件。 Delphi使用Sybase Advantage服务器V11与数据库进行通信。如果我在帐户软件中写了“é”,则在使用Advantage服务器读取它时,将读为“,”。

该帐户软件公司似乎认为它是用IBM代码页850编写的,但是如果我在Advantage服务器中使用ICLAND850,则无法正常工作。

在ADS中尝试了许多不同的代码页后,我似乎无法找到正确的代码页。

我在权益服务器中更改了代码页,但是是否需要在其他地方进行更改?

有没有方法或软件可以检测DBF中设置的角色?

最佳答案

您必须在AdsTableOptions.AdsCharTypeTAdsQuery组件中设置TAdsTable

http://devzone.advantagedatabase.com/dz/webhelp/Advantage11/ade_adschartype.htm

动态归类仅支持VFP表,因此对于要处理的旧DBF文件,必须将其设置为ANSIOEM

根据所使用的连接类型(ALS或远程服务器),设置正确的ANSI / OEM代码页的方式会有所不同。

另请参阅我对这个问题的回答:Advantage Database Index Collation Sequence

可以使用TField.AsBytes获取数据中使用的原始字节。我将从示例行和字段(包含ASCII以外的字符)中读取原始字节,并在OEM / ANSI表中查找它们,以查找正确的代码页。

网上有OEM和ANSI表。

例如,OEM 850中的é字符(即Unicode $00E9)是$82

http://demo.icu-project.org/icu-bin/convexp?conv=ibm-850_P100-1995&s=ALL

关于delphi - 在ADS中找不到与dbase III通信的正确代码页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19390000/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com