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