【发布时间】:2012-01-09 14:57:12
【问题描述】:
我们正在努力使我们的应用程序兼容 unicode,并且我们正在从 delphi 2007 迁移到 delphi xe2,我们遇到了一些问题,需要有关它们的建议
1) 一项更改是在数据库中存储具有 unicode 字符串的 blob 数据
我们将巨大的 xml 数据作为 blob 存储在数据库中,但在最新的 delphi 版本(xe2)中,blob 被视为字节数组。那么应该怎么做才能将 blob 数据存储在数据库中,尝试转换 Param.AsBlob := WideBytesOf(xml) 但这似乎不起作用。
2) 我们还使用 EFD 系统中的 HyperString 来更快地处理字符串,但是现在这个库的 unicode 版本不可用,通过将 ansistring 更改为字符串来编译代码并尝试修改一些汇编语言指令但成功了到目前为止只有少数,所以任何人都可以提出更快的字符串操作的任何替代方案
【问题讨论】:
-
HyperString 在 Delphi 1.0 时代更为相关。更高版本的 Delphi 生成了更优化的代码。我建议尽可能用等效的帕斯卡代码替换此代码。重写所有 HyperStr ASM 代码以使用 Unicode 字符串将是一项艰巨的任务,我不知道这些努力是否值得。
-
感谢您的意见,我们将研究用 Delphi 库函数替换 HyperStr 的调用
标签: delphi unicode blob delphi-xe2