目前,我们的数据库仅使用Win1252作为字符编码。我们很快就要支持数据库表中的Unicode,这意味着我们必须对四个数据库和约80个在内部运行的Delphi应用程序(24/7环境)进行迁移。是否有关于Delphi应用程序迁移到UTF-8(或UNICODE_FSS)的数据库迁移建议?以下是一些问题。非常感谢您提前的答复!
- 是否有工具来帮助迁移现有数据库(大小在250 MB到2 GB之间,没有Blob字段),通过转储数据,重新创建使用UNICODE_FSS或UTF-8的数据库,并加载数据?
- Delphi 2009、dbExpress和Interbase 7.5与Unicode字符集相关的已知问题是什么?
- 您是否建议先将数据库升级到Interbase 2009?(此次升级已计划但优先级不高)
- 我们是否可以简单地迁移数据库,然后Delphi会自动处理Unicode字符集,还是我们必须在每个Datamodule(dfm和源代码)中更改所有< strong>字符字段类型?
- 您推荐哪种策略来在现有应用程序的正常开发和维护中并行进行迁移?应用程序在公司内部运行,因此开发和数据库管理是由内部完成的。
更新:从InterBase讨论论坛主题中获取:在InterBase中使用Unicode数据库-真的吗?(这不是我发布的主题,但它表明InterBase XE仍存在一些问题)。
这里是一些我提交的报告: QC#92867-字符串字段为空, 仅来自视图,如果视图包括Union,并且当使用 ClientDataSet时。这是在我的几个报告中缺失的数据, 它们不再工作了。
QC#91494-IB字符列数据, 当通过存储过程检索字符字段(例如:Char(1))时, 用空格填充。测试失败-例如:如果Active =“Y”。我经常利用带有表单的存储过程, 这些存储过程无法正常工作。
QC#91355-IBSqlMonitor 失败。 IBSqlMonitor的输出有点混乱,使得这个工具无法使用。(所以, 即使我的铲子也坏了!)
未报告-Persistent fields在 TClientDataSet中对于TWideString失败。
其他相关QC条目:
QC#94455 SQL Unicode字符类型故障(InterBase XE)