请帮我解决一个问题。我的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);
我从数据库中收到下一个错误:错误:'unknown tokenizer:icu'。 我已经下载了sqlite的源代码,在xCode4的项目中添加了sqlite.c,并将#define SQLITE_ENABLE_FTS4添加到了sqlite.c文件中。但问题仍然存在。 我想在模拟器中做这件事,可能是原因吗?
请帮帮我。如何使用xCode 4在iPhone上处理FTS4?我应该使用一些古老的魔法? :)
玩得开心!
答案 0 :(得分:2)
您还需要使用SQLITE_ENABLE_ICU
#defined重新编译sqlite库本身。
仅仅在Xcode中添加源文件和选项是不够的,因为不会重新创建sqlite库。
请参阅ICU文档中的Tokenizers。
答案 1 :(得分:0)
我对这个功能不太熟悉,但我知道它是sqlite的扩展,http://www.sqlite.org/cvstrac/fileview?f=sqlite/ext/icu/README.txt - 听起来好像没有安装在这里。 HTH