You have to set the AdsTableOptions.AdsCharType
in your TAdsQuery
and TAdsTable
components:
http://devzone.advantagedatabase.com/dz/webhelp/Advantage11/ade_adschartype.htm
The dynamic collations are only support for VFP-Tables so for the old DBF files you are dealing with you have to set this to either ANSI
or OEM
.
Depending on what kind of connection you are using (ALS or Remote server) the way to set up the correct ANSI/OEM codepage is different.
See also my answer to this question: Advantage Database Index Collation Sequence
It's possible to get the raw bytes used in the data using I would read the raw bytes from an example row and field that contains characters outside of ASCII and look them up in OEM/ANSI tables to find out the correct code page.TField.AsBytes
.
There are OEM and ANSI tables available on the web.
For example the é
character (which is Unicode $00E9
) is $82
in OEM 850:
http://demo.icu-project.org/icu-bin/convexp?conv=ibm-850_P100-1995&s=ALL