On 02/02/2017 02:08 AM, x wrote:
Thanks Clemens. You’re right about changing the UTF8String* to char* as it now 
works but when trying it with a column containing Unicode characters it didn’t. 
I’d have liked to have tried it with windows wchar_t* type but If I try using



          if (sqlite3_create_collation16(SQLiteDB, "Compare", SQLITE_UTF16, NULL, 
&Compare) != SQLITE_OK)

                  throw Exception("Collation creation error");



I get the message “no such collation sequence: Compare” when running the query.

The second argument passed to sqlite3_create_collation16() should point to a buffer containing a utf-16 string. Not utf-8.

Dan.










From: Clemens Ladisch<mailto:clem...@ladisch.de>
Sent: 01 February 2017 17:32
To: 
sqlite-users@mailinglists.sqlite.org<mailto:sqlite-users@mailinglists.sqlite.org>
Subject: Re: [sqlite] Help with custom collation



x wrote:
int Compare(void* Data, int Len1, const void *s1, int Len2, const void *s2)
{
         const UTF8String *S1 = static_cast<const UTF8String*>(s1),
         *S2 = static_cast<const UTF8String*>(s2);
         return 0;
}

         if (sqlite3_create_collation(SQLiteDB, "Compare", SQLITE_UTF8, NULL, 
&Compare) != SQLITE_OK)
                 throw Exception("Collation creation error");

S1 and S2 appear to point to NULL values.
What is "UTF8String"?  If it is anything different from "char", the code is 
wrong.

If I change the select to ‘select ID from IDTbl order by ID collate Compare’ 
the Compare function is never entered.
Is this because ID is an integer column?
No, it is because the values in that column are integer values.

Is there no way to implement a custom collation on an integer column?
There is no way to implement a custom collation for integer values.
Collations are used only for string values.


Regards,
Clemens
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users


_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to