Seems this message wasn't posted properly yesterday. Retrying.

I've been using Firebird since a long time, successfully using quoted 
identifiers with Swedish characters åäö in them. I am at version 3.0.3 
(on Windows Server 2016, 64 bit).

I tried this code in C# using FirebirClient

Dictionary<string, FbTransactionBehavior> locks = new Dictionary<string, 
FbTransactionBehavior>() {
    { "KörningInstans", FbTransactionBehavior.Protected | 
FbTransactionBehavior.LockWrite },
    { "Körning", FbTransactionBehavior.Protected | 
FbTransactionBehavior.LockWrite }
}; // Note "ö" in table names above.
FbTransaction trans = connection.BeginTransaction(new 
FbTransactionOptions() {
    LockTables = locks,
    TransactionBehavior = FbTransactionBehavior.Consistency | 
}); // Exception!

The BeginTransaction call fails with an exception "arithmetic exception, 
numeric overflow, or string truncation
Cannot transliterate character between character sets". Error code in 
the exception is 335544321. SQLSTATE 22000. It contains 3 errors:
1. type 1, error code 335544321, no message.
2. type 1, error code 335544565, no message.
3. type 0, error code 335544321, message "arithmetic exception, numeric 
overflow, or string truncation\r\nCannot transliterate character between 
character sets".

The database is created like this in isql:
create database 'KorningarDev' user DEV password '***' page_size 4096 
set names 'UTF8' default character set UTF8 collation UNICODE;

And the connection string looks like this:

So, I see no reason why there would be any transliteration problems: 
Windows unicode -> UTF8, and then UTF8 all the way, right?

Is this a bug, and would that bug be most likely in .NET FirebirdClient 
or in the FB engine? (I.e. where should I report it?)

Kjell Rilbe

  • [firebir... Kjell Rilbe kjell.ri...@marknadsinformation.se [firebird-support]
    • Re:... Mark Rotteveel m...@lawinegevaar.nl [firebird-support]
    • [fi... Kjell Rilbe kjell.ri...@marknadsinformation.se [firebird-support]

Reply via email to