我们想在 Delphi 2009 和 Interbase 中使用 Unicode,并发现要将字符编码从 WIN1252 切换到 UNICODE_FSS 或 UTF8,我们首先必须在所有数据模块中用 TWideStringField 替换所有 TStringField 实例。对于大约 60 个数据模块,我们不能简单地在一个周末内完成这项工作。我只能看到迁移策略的两个选项:
- 找到一种解决方法,允许使用现有的 TStringField 字段而不触发“预期:TWideStringField”错误
或者
- 删除所有持久字段以避免字符串类型冲突
据我所知,持久数据库字段的字段类型已在某种类注册表中注册。我们可以用它来让 Delphi 相信 TStringField 可以用于具有 UNICODE_FSS 或 UTF8 编码的 Interbase 字符列吗?
或者我们可以使用在这两种情况下都可以与 TStringField 一起使用的商业 dbExpress 驱动程序吗?
另请参阅我的相关问题:Delphi dbExpress 和 Interbase:UTF8 迁移步骤和风险?
更新:在所有 DFM 和 PAS 文件中将所有出现的 TStringField 替换为 TWideStringField 之后,我们发现现在还需要在大约 100 个位置将 TWideStringFields 的“Size”属性值乘以四(如果我们使用 UTF8)。所以我开始赏金寻找一种减少修复 DFM 的手动工作的方法