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.
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to