【发布时间】:2012-01-10 09:48:57
【问题描述】:
目前我们正在从 Delphi 2007 迁移到 Delphi XE2 以支持 Unicode。我们将大型 XML 数据作为 blob 存储在数据库中。要将 blob 值插入数据库字段,我们使用以下代码
Param.DataType := ftBlob;
Param.AsBlob := Value;
但是现在为了支持 unicode 的东西,我们将数据库中的所有 blob 字段转换为 nvarchar (max)。我们把上面的代码改成
Param.DataType := ftwideString;
Param.AsString := Value;
这是正确的做法,还是应该以不同的方式处理,以便将 Unicode 数据存储到数据库中。
【问题讨论】:
-
您想对数据使用什么编码? UTF-8 通常是一个不错的选择。
-
您使用的是 SQL 服务器吗?如果是这样,您可以使用解析为
ftMemo的XML 数据类型(它提供XQuery支持)(我认为与nvarchar(MAX)相同)。 -
这个问题的答案取决于您使用的数据访问组件。阿多? SQL Server 版本? SQL Antive 客户端正在使用中?
-
@David Heffernan-> 现在我们使用 UTF-8,但在讨论将其更改为 UTF-16 @da-soft -> 我们使用 ADO 和 SQL Sever 2008
标签: database delphi unicode blob delphi-xe2