UnicodeをDelphi2009およびInterbaseで使用したいのですが、文字エンコードをWIN1252からUNICODE_FSSまたはUTF8に切り替えるには、最初にすべてのデータモジュールでTStringFieldのすべてのインスタンスをTWideStringFieldに置き換える必要があることがわかりました。約60のデータモジュールの場合、これを1つの週末に単純に行うことはできません。移行戦略には2つのオプションしか表示されません。
- 'expected:TWideStringField'エラーをトリガーせずに既存のTStringFieldフィールドを使用できるようにする回避策を見つけます
また
- 文字列型の競合を回避するために、すべての永続フィールドを削除します
私の知る限り、永続データベースフィールドのフィールドタイプは、ある種のクラスレジストリに登録されています。これを使用して、TStringFieldがUNICODE_FSSまたはUTF8エンコーディングのInterbase文字列で問題ないとDelphiに信じ込ませることができますか?
または、どちらの場合もTStringFieldで動作する市販のdbExpressドライバーを使用できますか?
関連する質問も参照してください:Delphi dbExpressとInterbase:UTF8の移行手順とリスク?
更新:すべてのDFMおよびPASファイルでTStringFieldのすべてのオカレンスをTWideStringFieldに置き換えた後、TWideStringFieldsの「Size」プロパティ値を約100か所で4倍する必要があることがわかりました(UTF8を使用する場合)。そこで、DFMを修正するための手作業を減らす方法の報奨金を開始します