vic*_*ico 5 delphi anydac firedac
我使用 AsWideString 将 Unicode 字符串传递给 TADQuery 参数。
ADQuery.Params.ParamByName('MyFld').AsWideString
Run Code Online (Sandbox Code Playgroud)
但是当字符串变得太长时,我收到错误:
[MyFld]. Max len = [8002], actual len = [10522]
Run Code Online (Sandbox Code Playgroud)
然后我决定使用 AsMemo 属性
ADQuery.Params.ParamByName('MyFld').AsMemo
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我的 Unicode 字符串无法正确显示。
解决这两个问题的方法是什么?
TFDParam 类型在 XE5 中有一个 .AsWideMemo,它应该正确接受 unicode 字符并绕过您遇到的大小限制。
ADQuery.Params.ParamByName('MyFld').AsWideMemo := 'Some unicode string';
Run Code Online (Sandbox Code Playgroud)
实际的数据库字段具有分配给它的最大字符限制。您不能设置超过该限制的值。它会截断该值,或者在您的情况下引发错误。您不能用于AsMemo设置非备注字段。继续使用AsWideString并注意您的数据库布局。
| 归档时间: |
|
| 查看次数: |
2576 次 |
| 最近记录: |