[fpc-pascal] TStringField.Size
Michael Van Canneyt
michael at freepascal.org
Mon Jul 14 14:59:39 CEST 2025
On Mon, 14 Jul 2025, Luca Olivetti via fpc-pascal wrote:
> El 14/7/25 a les 14:30, Michael Van Canneyt via fpc-pascal ha escrit:
>>
>>
>> On Mon, 14 Jul 2025, Luca Olivetti via fpc-pascal wrote:
>>
>>> Hello,
>>>
>>> In a project I'm using both an sql server database (TMSSQLConnection) and
>>> a postgresql one (TPQConnection).
>>> One of the TStringField is defined as size 100, but in the sql server it
>>> has been changed to to 200.
>>> Even without changing the TStringField.Size in the program I can get
>>> values longer than 100 characters.
>>> I did a test with the TPQConnection and if I change the size of a field,
>>> the TStringField is truncated according to its size.
>>> Why the difference between the two database connectors? Shouldn't it
>>> depend exclusively on the TField implementation?
>>
>> No, the field size is calculated by the connection component and whether or
>> not it uses UTF8 for the character set.
>
> That's not what the documentation says
>
> https://www.freepascal.org/docs-html/fcl/db/tstringfield.size.html (emphasis
> mine)
>
> "it is the declared *maximum* size of the string (in *characters*) and is
> used to calculate the size of the dataset buffer."
Seems the documentation has not been updated for the unicode case :-(
Michael.
More information about the fpc-pascal
mailing list