4

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

我尝试将该字段作为 TBlobField 访问,但它也给了我转换后的版本:我正在存储代表 5 个汉字的 10 个字节的数据,并且 BlobSize 返回 5。

任何人都可以建议一种方法来从 blob 字段中获取原始内存而不对其进行转换吗?

4

1 回答 1

3

我找到了。结果非常简单:像打开普通字段一样打开数据集,然后执行以下操作:

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

(WSBuffer 是 WideString 类型)。

于 2010-07-07T07:24:43.537 回答