On Tue, 21 Jul 2009, Graeme Geldenhuys wrote:

Michael Van Canneyt wrote:

I never use Char fields,

I can live with that...


and I also don't use charsets in Firebird...

..but not with this! Here are just a few issues with using NONE as the default charset in a Firebird database.

* Firebird does NOT default to your system locale. It ignores
 anything on you OS, so all databases on any OS in any locale
 are treated the same.

No problem, since this is Windows, all with the same CP.


* Firebird can't correctly uppercase, lowercase or no accent
 non-ASCII characters

All this is handled on the client app. For the 4 fields in the database where 
it matters,
we have a 2nd (indexed) field which contains a lowercased value of the value of the original field. Takes slightly more room, but is much faster.


* Firebird sorting of non-ASCII characters very wrong for   most occasions

Sorting never happens by firebird, all on client.

* Nothing in the database itself documents how the bytes stored should be interpreted as characters

All handled by app.


* When the same database is simultaneously or in succession used by systems with different system default character sets, the data will silently change meaning.

Not a problem in my context.

Just to say that using NONE doesn't need to be a problem in all cases.

In general, I think your approach is correct, though.

Our system will use accented characters and sorting will be important. We will also be accessing data from various locations (differing locales).

I'm Google'ing now for "firebird charset utf8" and reading the various articles. But I'll still be testing FBLib and IBX to see what they do and if they handle it the same as SqlDB.

IBX does, as far as I can gather.

Michael.
_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to