Alan,
I am stuck in a totally different problem than I thought. My DB server is using UTF-8 and my client also. But VAST is using IS08859-15. So the String handed from within the Smalltalk image fits well into the field, but DB2's conversion to UTF-8 expands it by 1 byte for each umlaut. So If I Update a varchar(3) from GLORP with a String 'ÄÖÜ', Glorp will perfectly correctly send this string to the DB client and do its job nicely. But there is some conversion going on between the CLI client and the database that expands the String to 6 Bytes and therefor I get the SQLCode.
So it's nothing you have to worry about, other than maybe feel a bit of pity for me ;-)
Does anyone have a good idea what to do in this situation? IBMs Documentation is so full of non-information that I seem to not see the trees there.
My current idea is this: There's not much use in trying to offload work to DB2 by changing my client's code set, because the server still needs two bytes for each umlaut (or other special character like the Euro sign). So I either make my fields longer by a theoretical factor of, say, 1.5 (It's unlikely more than 50% of German words are Umlauts) (DB2 proposes a factor of 3 in its SQLERRD fields, but I guess that's because they take the 4 bytes as a base and use the same rule of thumb about the percentage of real 4-byte characters), or I recreate the DB on the server with code set 8859-15. This is probably my best bet for the moment, because it should make the lengths of Strings equal for both sides of the connection. But it also brings up the question of what to do with other clients in other programming languages...
I will first try the latter option. Seems like less effort for now ;-)