我需要读一本 nvarchar(max) 字段来自使用Delphi6和ADO的SQL Server 2008数据库。我可以很好地处理Unicode文本,但似乎ADO组件正在“预转换”字符串到代码页,甚至在我开始查看它之前。
nvarchar(max)
我尝试将字段作为tblobfield访问,但它也提供了转换后的版本:我存储了10字节的数据,代表5个汉字,blobsize返回5。
有人能建议一种不转换blob字段就从blob字段中获取原始内存的方法吗?
我找到了。事实证明这非常简单:打开数据集就像打开一个普通字段一样,然后执行以下操作:
AQuery.FieldByName('LocalText').SetFieldType(ftWideString); WSBuffer := (AQuery.FieldByName('LocalText') as TWideStringField).Value;
(wsbuffer是宽字符串类型)。