Неизвестный токенизатор: icu в запросе sqlite3 - PullRequest
1 голос
/ 10 августа 2011

Помогите, пожалуйста, с проблемой. У меня есть виртуальная таблица в моей базе данных sqlite:

`CREATE VIRTUAL TABLE tablename USING fts4(column1, column2, tokenize=icu ua_UA)`

Когда я пытаюсь сделать SQL-запрос к этой таблице, как

const char *sql = "SELECT column2 FROM tablename WHERE tablename.column1 MATCH ?";
sqlite3_bind_text(statement, 1, [matchString UTF8String], -1, SQLITE_TRANSIENT);

Я получаю следующую ошибку из базы данных: Ошибка: «неизвестный токенизатор: icu». Я скачал исходники sqlite, добавил sqlite.c в свой проект в xCode4 и добавил #define SQLITE_ENABLE_FTS4 в файл sqlite.c. Но проблема все еще существует. Я пытаюсь сделать это в симуляторе, это может быть причиной?

Помогите мне, пожалуйста. Как я могу справиться с FTS4 на iPhone с xCode 4? Должен ли я использовать древнюю магию? :)

Хорошо провести время!

Ответы [ 2 ]

2 голосов
/ 14 ноября 2011

Вам также необходимо перекомпилировать саму библиотеку sqlite, указав SQLITE_ENABLE_ICU #.

Недостаточно просто добавить исходный файл и параметр в Xcode, потому что библиотека sqlite не будет воссоздана.

См. Токенайзеры в документах ICU.

0 голосов
/ 15 августа 2011

Я не очень знаком с этой функцией, но знаю, что это расширение для sqlite, http://www.sqlite.org/cvstrac/fileview?f=sqlite/ext/icu/README.txt - похоже, оно здесь не установлено. НТН

...