代码之家  ›  专栏  ›  技术社区  ›  Stephane

使用Delphi6从SQL Server读取Unicode字符串

  •  4
  • Stephane  · 技术社区  · 14 年前

    我需要读一本 nvarchar(max) 字段来自使用Delphi6和ADO的SQL Server 2008数据库。我可以很好地处理Unicode文本,但似乎ADO组件正在“预转换”字符串到代码页,甚至在我开始查看它之前。

    我尝试将字段作为tblobfield访问,但它也提供了转换后的版本:我存储了10字节的数据,代表5个汉字,blobsize返回5。

    有人能建议一种不转换blob字段就从blob字段中获取原始内存的方法吗?

    1 回复  |  直到 14 年前
        1
  •  3
  •   Stephane    14 年前

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

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

    (wsbuffer是宽字符串类型)。

    推荐文章