我需要使用Delphi 6和ADO从SQL Server 2008数据库中读取nvarchar(max)
字段。我可以很好地处理unicode文本,但似乎ADO组件将字符串“预转换”到代码页之后才能看到它。
我尝试将该字段作为TBlobField访问,但它也为我提供了转换版本:我存储了10个字节的数据,代表5个中文字符,BlobSize返回5.
有没有人可以建议一种方法从blob字段获取原始内存而不进行转换?
答案 0 :(得分:3)
我找到了。事实证明它非常简单:打开数据集就好像它是一个普通的字段,然后执行以下操作:
AQuery.FieldByName('LocalText').SetFieldType(ftWideString);
WSBuffer := (AQuery.FieldByName('LocalText') as TWideStringField).Value;
(WSBuffer是WideString类型)。