As I understand, the problem with varchar fields is that updates to a varchar field that increase the number of characters force the database to reorganize and reindex the whole table. Varchar will only store as many bytes as needed, while char stores all the bytes declared in the field. That's why the string gets padded: the db had to insert whitespace to keep up with the char field length.
Example:
Insert "lala" in a varchar(256) field. The db will actually use 4 bytes for this, not 256.
Then update this field with "lala2". Now the db has to resize and reindex.
If the update had fewer characters than the original (i.e. "la"), no resizing is done.
This can be a big big problem if it happens in a table with a lot of data. That is why we tend to use char (well, nchar actually) instead of varchar for big tables. But, the trimming headache is there, no question about that.
I think it would be neat to have an option in LLBLGenPro to automatically trim certain fields. You could declare in the designer that you want LLBLGenPro to trim some field when you read it which would save us the headache. How's that?
cheers
alvaro.-