Subject Re: [firebird-support] UTF8 database and extended characters in metadata
Author Thomas Steinmaurer
Hello Martijn,

>> In an UTF8 database ( Fb 2.1 ), trying to create a table via Database
>> Workbench which uses IBObjects:
>>
>> create table "ÅÄÖ"
>> ( id integer)
>>
>> I get:
>> arithmetic exception, numeric overflow, or string truncation Cannot
>> transliterate character between character sets
>>
>> However, in FlameRobin, this works fine.
>>
>> When retrieving the columns for this table, I get:
>> ISC ERROR CODE:335544436
>>
>> ISC ERROR MESSAGE:
>> SQL error code = -104
>> please retry, giving a database name
>>
>> But I have the feeling this message is incorrect (wrong firebird.msg?)
>
> It seems to be the error message:
> Malformed string
>
> On executing:
> select rf.rdb$field_name, f.rdb$field_type, f.rdb$field_sub_type,
> rf.rdb$description,
> rf.rdb$null_flag, rf.rdb$default_source as field_default,
> f.rdb$default_source as domain_default,
> f.rdb$field_scale, f.rdb$computed_source, rf.rdb$field_position,
> f.rdb$field_length, f.rdb$character_length, rf.rdb$field_source,
> rdb$segment_length,
> f.rdb$character_set_id, rf.rdb$collation_id as field_collation,
> f.rdb$collation_id as domain_collation,
> f.rdb$dimensions, fd.rdb$upper_bound, fd.rdb$lower_bound
> , f.rdb$field_precision
> from rdb$fields f left outer join rdb$field_dimensions fd on
> f.rdb$field_name = fd.rdb$field_name,
> rdb$relation_fields rf
> where f.rdb$field_name = rf.rdb$field_source and
> rf.rdb$relation_name = 'ÅÄÖ'
> ORDER BY rf.rdb$field_position ASC
> , fd.rdb$dimension ASC
>
>
> Additionally, reconnecting with FlameRobin displays the tablename completely
> mangled.

The infamous malformed string error message has been discussed in
several contexts in firebird-devel in the past. See also:
http://tracker.firebirdsql.org/browse/CORE-1634

I think it is related to using a UTF8 database with UTF8 character set
at connect time, but without a unicode capable client tool.

What happens, specifying e.g. ISO8859_1 or WIN1252 at connect time, even
if it is a UTF8 database?

I once switched back from UTF8 to ISO8859_1 for a newly created Firebird
2.1 cause of these problems.



--
Best Regards,
Thomas Steinmaurer
LogManager Series - Logging/Auditing Suites supporting
InterBase, Firebird, Advantage Database, MS SQL Server and
NexusDB V2
Upscene Productions
http://www.upscene.com
My blog:
http://blog.upscene.com/thomas/