[fpc-pascal] TStringField.Size

Luca Olivetti luca at ventoso.org
Mon Jul 14 14:54:44 CEST 2025


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."

In any case I would expect the same behaviour regardless of the database 
connector used.

Bye
-- 
Luca



More information about the fpc-pascal mailing list