1

dBase III データベースを直接使用する会計ソフトウェアを入手しました。また、これらのデータベースを使用する Delphi XE2 で書かれた自家製のソフトウェアも入手しました。Delphi は、Sybase Advantage サーバー V11 を使用してデータベースと通信します。アカウントソフトで「é」と書くとアドバンテージサーバーで読むと「、」と読みます。

アカウント ソフトウェア会社は、IBM コードページ 850 で書かれたと考えているようですが、アドバンテージ サーバーで ICLAND850 を使用すると動作しません。

ADS でさまざまなコードページを試してみましたが、正しいコードページが見つからないようです。

アドバンテージ サーバーでコード ページを変更しましたが、別の場所で変更する必要がありますか?

DBFに設定されたキャラクターを検出する方法またはソフトウェアはありますか?

4

1 に答える 1

3

およびコンポーネントAdsTableOptions.AdsCharTypeでを設定する必要があります。TAdsQueryTAdsTable

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

動的照合は VFP テーブルのみをサポートするため、扱っている古い DBF ファイルの場合は、これを または のいずれかに設定する必要がありANSIますOEM

使用している接続の種類 (ALS またはリモート サーバー) によって、正しい ANSI/OEM コードページを設定する方法が異なります。

この質問に対する私の回答も参照してください: Advantage Database Index Collat​​ion Sequence

を使用して、データで使用されている生のバイトを取得することができますTField.AsBytesASCII 以外の文字を含む行とフィールドの例から未加工のバイトを読み取り、OEM/ANSI テーブルで検索して正しいコード ページを見つけます。

OEM および ANSI の表が Web で入手できます。

たとえば、é文字 ( Unicode $00E9) は$82OEM 850 にあります。

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

于 2013-10-16T13:38:51.177 に答える