【问题标题】:Reading a unicode string from SQL Server with Delphi 6使用 Delphi 6 从 SQL Server 读取 unicode 字符串
【发布时间】:2010-07-06 16:28:05
【问题描述】:

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

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

有没有人可以建议一种方法来从 blob 字段中获取原始内存而无需对其进行转换?

【问题讨论】:

  • 感谢您的编辑,马克。我真的应该在发布之前阅读此消息。

标签: sql-server delphi ado delphi-6


【解决方案1】:

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

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

(WSBuffer 是 WideString 类型)。

【讨论】:

    猜你喜欢
    • 2016-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    相关资源
    最近更新 更多