Subject Re: [firebird-support] After inserting 4683 rows infamous "Cannot transliterate ..." error always
Author Ivan Prenosil
> I have read several articles about Firebird and charsets and followed
> the guidelines "Everything You Need to Know About InterBase Character
> Sets"
> (,
> but so far I have even no clue what's going on.
> I'm able to insert exactly 4683 rows via a stored procedure from a
> file and then I always get this error message: Cannot transliterate
> character between character sets.

Do you mean you are running sql script ?
Have you tried it with standard isql ?
Does it contain SET NAMES statement ?

> With IB Expert I can open the table and there is nothing special to see.
> The stored procedure looks like this:
> iswhitetomove char(1),
> huffmanfen_input varchar(37))
> returns (
> position_id integer)
> as
> begin
> SELECT "Position"."HuffmanFen"
> FROM "Position"
> WHERE "Position"."HuffmanFen" = :huffmanfen_input INTO :position_id;
> if (position_id is null) then begin position_id =
> gen_id("sq_Position",1); INSERT INTO "Position" (OID,
> "Position"."HuffmanFen",
> "Position"."IsWhiteToMove") VALUES (:position_id, :huffmanfen_input,
> :iswhitetomove); end suspend; end^
> ==========
> It fails at the line "WHERE" where I try to query for :huffmanfen. But
> only after inserting 4683 rows.

??? What does it mean "It fails at the line WHERE" ? Do you use some emulator ?

> The input parameter of the SP is charset UNICODE_FSS. But this is not
> displayed with IB Expert, if the default charset is the same. I also
> tried with default charset none and then explictly set the column of
> the table and the input parameter to UNICODE_FSS, same result. I have
> also tried UT8.
> I'm inserting some unicode stuff for the parameter HuffmanFen like
> _ῳ濴替.忿.⿿ャ콯쿿迏겹秿.\0
> 䈵匔晦晦........쳌쳌ꢛ륺\0

The values do not look like well formed utf8 to me.