On 6/27/07, Jiri Hajek <[EMAIL PROTECTED]> wrote:
Actually, reading one of the links you posted
(http://blogs.msdn.com/michkap/archive/2005/05/04/414520.aspx -
everybody please read it before continuing in discussion), I got (what
I think is a great) idea: Let's include version information about
collation algorithm we are using. So, extending my previous
suggestion, the SQLite collation title would look like
'en_AU_Win_2_1', where the individual parts mean:
 'en_AU' - obviously a sort order
 'Win' - that we are basing the ordering on default Windows methods
(otherwise could be e.g. 'ICU')
 '2_1' - version string as retrieved from GetNLSVersion() function and
NLSVERSIONINFO struct (see the link above for details).

I don't see how that is different than the previous difficulty of
having incompatible databases between systems. The only new thing is
we can check it, but the database will have inconsistent behaviour
anyway.

This way we are absolutely sure that we don't corrupt SQLite database.
While I'm working on a single system, the version string wouldn't
change. Then, e.g. if I open SQLite database with 'en_AU_Win_2_1'
collation on a system NLSVERSIONINFO returns version 2.3, I know I
have to reindex, change collation title to 'en_AU_Win_2_3' and then
can safely use the database.

Trevor proposed method doesn't need that, because the collation data
goes with the database (which is the big advantage to me). And if you
want to use another collation, you only need to import the collation
data needed for that locale.

It seems to me to be a really cross-platform solution and what's best
- without any coding on SQLite side necessary (even though possible to
handle some parts of this proposal internally).

On the articles you have pointed (but I don't have a link right now)
also states that SQL Server and the Jet engine don't use the system
collation functions, but instead have their own integrated collation
system (based on the Windows one, off course) exactly for the same
reason.

For small databases, the task of re-indexing is not big, but you are
forgetting you can have a database in a shared network folder, used by
PC's in different parts of the world and even different OSs (with
samba/cifs). That's why I like Trevor's idea so much.


Best regards,
~Nuno Lucas

Jiri

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to