Subject | Transliteration problem with table locks? |
---|---|
Author | Kjell Rilbe |
Post date | 2018-09-16T05:00:40Z |
Hi,
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 6.3.0.0:
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 |
FbTransactionBehavior.Write
}); // 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:
Server=xxx.xxx.xxx.xxx;Port=3050;Database=KorningarDev;Charset=UTF8;User=DEV;Password=***
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?)
Regards,
Kjell Rilbe
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 6.3.0.0:
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 |
FbTransactionBehavior.Write
}); // 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:
Server=xxx.xxx.xxx.xxx;Port=3050;Database=KorningarDev;Charset=UTF8;User=DEV;Password=***
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?)
Regards,
Kjell Rilbe