【发布时间】:2014-01-28 09:41:15
【问题描述】:
我使用 AsWideString 将 Unicode 字符串传递给 TADQuery 参数。
ADQuery.Params.ParamByName('MyFld').AsWideString
但是当字符串变得太长时出现错误:
[MyFld]. Max len = [8002], actual len = [10522]
然后我决定使用 AsMemo 属性
ADQuery.Params.ParamByName('MyFld').AsMemo
在这种情况下,我的 Unicode 字符串显示不正确。
解决这两个问题的方法是什么?
【问题讨论】:
-
@David,FireDAC 按照您的预期实现它,但请参见例如stackoverflow.com/a/16140053/960757。常见的数据集提供者(谁知道,也许是)被实现为
AsStringgetter 用于从底层数据库返回 ANSI 字符串。即使在 Unicode Delphi 中。这是一个陷阱。