使用Delphi 6从SQL Server读取unicode字符串

时间:2010-07-06 16:28:06

标签: sql-server delphi ado delphi-6

我需要使用Delphi 6和ADO从SQL Server 2008数据库中读取nvarchar(max)字段。我可以很好地处理unicode文本,但似乎ADO组件将字符串“预转换”到代码页之后才能看到它。

我尝试将该字段作为TBlobField访问,但它也为我提供了转换版本:我存储了10个字节的数据,代表5个中文字符,BlobSize返回5.

有没有人可以建议一种方法从blob字段获取原始内存而不进行转换?

1 个答案:

答案 0 :(得分:3)

我找到了。事实证明它非常简单:打开数据集就好像它是一个普通的字段,然后执行以下操作:

AQuery.FieldByName('LocalText').SetFieldType(ftWideString);
WSBuffer := (AQuery.FieldByName('LocalText') as TWideStringField).Value;

(WSBuffer是WideString类型)。