Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pass long Unicode strings to FireDac TADQuery parameter

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?

like image 635
vico Avatar asked Mar 21 '23 19:03

vico


1 Answers

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 using AsWideString and pay attention to your database layout.

like image 160
Remy Lebeau Avatar answered Apr 02 '23 08:04

Remy Lebeau