Hi ,
We are facing some issues now, when we need to make SQL queries and in our
databases there are non ASCII characters, and SQL queries should be case
insensitive ..
Then I read from the documentationn about enable ICU for sqlite
So I defined
#define SQLITE_ENABLE_ICU
Then I try call to create collation:
int iRetVal =
sqlite3_create_collation(m_sqliteDb,pstrDbName,SQLITE_UTF8,NULL,sqliteLocaleAwareCompare);
which returns SQLITE_OK
and then I implemented as a test following method:
int sqliteLocaleAwareCompare(void *, int ll, const void *l, int rl,
const void *r)
{
QString left = QString::fromUtf8((const char*)l);
QString right = QString::fromUtf8((const char *)r);
//qLog(Sql) << "comparing:" << left << "with" << right << "result"
return QString::localeAwareCompare(left, right);
}
To do the comparison ..
But this sqliteLocaleAwareCompare never gets called when query is executed to
database
Then I was wondering that should I do that create_collation to this following
method defined in sqlite3.c but that never succeeded
static int icuLikeCompare(
const uint8_t *zPattern, /* LIKE pattern */
const uint8_t *zString, /* The UTF-8 string to compare against */
const UChar32 uEsc /* The escape character */
Now I just wonder which way to proceed ?
Br. Jarno
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users