I was using AsWideString to pass Unicode string to TADQuery parameter.
ADQuery.Params.ParamByName('MyFld').AsWideString
But when string becomes too long I got error:
[MyFld]. Max len = [8002], actual len = [10522]
Then I decided to use AsMemo property
ADQuery.Params.ParamByName('MyFld').AsMemo
In this case my Unicode string is not displayed correctly.
What is the way to solve both problems?
The actual database field has a max character limit assigned to it. You cannot set a value that exceeds that limit. It will either truncate the value, or in your case, raise an error. You cannot use
AsMemo
to set a non-Memo field. Keep usingAsWideString
and pay attention to your database layout.